Hatena Blog細胞

@shimezikun 思いつきやメモなど

STM32CubeIDEでSTM32F4Discoveryのデモプロジェクトをビルドする

はじめに

この記事はSTM32CubeIDEでSTM32F4DiscoveyのDemonstrationsプロジェクトをビルドするための備忘録です。作業の勢いで書いているので間違っている部分もあるかもしれません。参考程度にしてください。STM32F4Discoveryは、STM32F407というマイコンの評価ボードです(秋月電子での発売日が2011年なので少し古めです)。そしてSTM32CubeIDEはSTマイクロエレクトロニクスが2019年5月に発表したSTM32向けのIDEになります。

環境

  • OS
  • STM32CubeIDE
    • 1.4.2
  • STM32F4Discovery
    • MB997C (PCB revision C)
  • Project
    • Demonstrations

デモプロジェクトの作成

STM32CubeIDEを開き、File > New > STM32 Projectと選択すると、STM32 Projectの別ウインドウが開きます。このウインドウからExample Selectorタブを選択し、左側のExample FilterからでSTM32F4DiscoveryのExampleを絞り込んでいきます。絞り込めたらDemonstrationsを選択しNextをクリックしてプロジェクトを作成していきます。

f:id:shimezikun:20201003162036p:plain
Example Selector

ビルド(失敗)

Demonstrationsプロジェクトをビルドしてみましょう。Project > Build allを選択もしくはCtrl-Bでビルドします。

make: *** No rule to make target 'C:/Users/***/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c', needed by 'Middlewares/STM32_USBD_Library/Core/usbd_core.o'.  Stop.
"make all" terminated with exit code 2. Build might be incomplete.

はい。失敗しました。usbd_core.cが無いようです。

原因

f:id:shimezikun:20201003164639p:plain
File not found.

Project Explorerで確認すると当該ファイル名はIDEには登録はされていますがファイル自体が存在していないようです。ファイルをダブルクリックで開いてみるとFile not foundと表示されます。Workspaceを直接エクスプローラで覗いてみてもファイルはありませんでした。DemonstrationsをSTM32CubeIDEのプロジェクトにコンバートした時に発生したバグでしょうか。

対処法

ライブラリのダウンロード

不足しているファイルを補います。具体的にはSTMicroがGitHubにあげているSTM32CubeF4リポジトリからダウンロードしてきます。
github.com
上記のSTM32CubeF4ライブラリをcloneもしくはDownload zipしてローカルに保存しておきます。

ファイルのコピー

ダウンロードしたライブラリから不足しているファイルを探して手動でコピーします。Project Explorerに不足ファイルをドラッグアンドドロップするとコピーできます。ファイルを上書きする旨を確認するダイアログが出たらOverwriteもしくはOverwrite allを選択してください。workspaceにファイルを直接コピーするのは止めた方が良いです。STM32CubeIDE(というかeclipse)がおかしくなります。

私の場合はMiddlewaresとBSPディレクトリ以下のファイルが不足していたので手動でコピーしました。ざっと見て不足しているファイルが無くなったらビルドをしてみましょう。

えいっ。

f:id:shimezikun:20201003171713j:plain
lis302dl.h

あっ…。

ライブラリとインクルードパスの修正

加速度センサのヘッダファイルが存在しないみたいです。先ほどダウンロードしたライブラリから追加します。エラー表示に従いlis302dl.hとlis3dsh.hを、lis302dl.cとlis3dsh.cと同じディレクトリにコピーします。確認ダイアログが出た場合はCopy filesを選択してみてください。
再ビルドします。えいっ。

../Dirvers/Components/lis302dl.h:48:10: fatal error: ../Common/accelero.h No such file or directory
#include "../Common/accelero.h"
         ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.

……。共通ライブラリが無いみたいです。ダウンロードしたライブラリから./Common/以下を探してドラッグアンドドロップで丸ごとコピーします。
再々ビルドします。えいっ。

Finished building target: Demonstrations.elf
 
arm-none-eabi-size   Demonstrations.elf 
   text	   data	    bss	    dec	    hex	filename
  18120	    568	   3888	  22576	   5830	Demonstrations.elf
Finished building: default.size.stdout
 
arm-none-eabi-objdump -h -S  Demonstrations.elf  > "Demonstrations.list"
Finished building: Demonstrations.list
 
arm-none-eabi-objcopy  -O binary  Demonstrations.elf  "Demonstrations.bin"
Finished building: Demonstrations.bin
 

17:22:17 Build Finished. 0 errors, 0 warnings. (took 6s.197ms)

やっとビルドが通りました。良かったですね。成果物をSTM32F4Discoveryに焼いてみて確認してみましょう。評価ボードとPCをMicroUSBで接続すれば加速度マウスになります。

所感

  • 動かない物をリリースしないで
  • eclipseベースのIDEはしんどい

いまさら1903にしたら起動しなくなったりRadeon settingがエラーを吐いたりした話

Windows10を1809から1903にアップデート後に以下の現象が発生した。

  1. ロック画面から先に進めない
  2. Radeon Settings がエラーを吐く

構成

PC Lenovo ThinkCentre M715q Tiny
CPU AMD Ryzen 5 Pro 2400GE
GPU Radeon Vega 11 (オンボード)

1. ロック画面から先に進めない

Windows10のロック画面(時刻が表示される画面)からログイン画面に移動しようとすると、画面の表示が乱れPCが再起動する。

  • 1903アップデート後すぐは正常に起動できた
  • アップデート後にWindows updateでいくつかのパッチが降ってくる
  • 再起動を要求されたので再起動する
  • 当該の症状が出てログインできなくなる
    • 何度か再起動してもログインできずロック画面から先に進めない

原因

たぶんGPUのドライバ関係。実は1903アップデート前に、YouTubeなどで動画を再生するとに同様に画面が乱れPCが再起動してしまう現象が発生していた(その時はChromeGPU支援を無効して対策した)。画面の乱れ方からしてたぶん同じGPUのドライバ関係だと思う。

1903アップデートに伴ってかメーカ(lenovo)が提供するドライバがWindowsストアを経由して提供されるようになった。そこにはグラフィックのドライバも含まれているため、そこで古いドライバと新しいドライバが競合してしまったのだろうか(?)

もしくは、Windows updateで適用したパッチが何か悪さをしているのかも知れない…

対策

Windows10の自動修復の「詳細オプション」にある「システムの復元」を使いwindwos updateのパッチが当たる前まで切り戻した。ログイン画面以降にも進めるようになり無事復旧した。何が原因だったかは分からなかったが、まあ起動できたので良しとする。

2. Radeon setting がエラーを吐く

GPUドライバ関係のエラー。下記エラーが表示される。
f:id:shimezikun:20191109184018p:plain

エラー
Redeon Seetings Liteでは、システムに古いバージョンのRadeon Settingがインストールされており、現在のソフトウェアバージョンと互換性がないことを検知しました。…

1903アップデート後、Radeon Setting (GPUのドライバ?)が削除され、Radeon Setting Liteがインストールされた。Radeon Setting LiteはWindowsアプリストアを経由して配布されるアプリらしい。

原因

ロック画面のエラーと同じ原因? エラーメッセージでググると古いドライバのレジストリが悪さをしているらしいという事が分かった。

対策

レジストリエディタを開き、レジストリ

コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\AMD\CN

に格納されているDriverVirsonの値を削除する。

f:id:shimezikun:20191109185120p:plain

DriverVirsonを確認すると確かに古いバージョン値になっていた(画像は削除後)。バージョン値を削除しOSを再起動するとエラーが表示されなくなった。


追記

1903アップデート後、ChromeGPU支援を有効にしてブラウザで動画を再生しても再起動しなくなった。よかったです。

CX 6.00BTのイヤーピースを無くしたのでComply Ts-167を買う

SENNHEISER CX6.00BTのイヤーピースを無くしたのでComply Ts-167を買いました。


shimezikun.hatenablog.com

 約1年前に購入したBluetoothイヤホン CX6.00 BTのイヤーピースを無くしました。ポケットに雑に入れて持ち運んでいたので、むしろ1年間もイヤーピースを無くさずにいたのが奇跡です。

 でもまあイヤーピースが無いと音楽が聴けないので、近くの家電量販店でイヤーピースを買いました。残念ながらCX6.0 BTに適合する純正イヤーピースは店頭には無く、Comply Ts-167 というイヤーピースを購入しました。


f:id:shimezikun:20190507205916j:plain
CX6.00 BT w/ Comply Ts-167

買った後に知ったのですがオーディオ界隈では定番っぽいカスタマイズパーツらしいです。なんか強そうですね。

f:id:shimezikun:20190507202422p:plain
https://www.comply.jp/type/ts/

感想

良いところ

  • 遮音性と装着感
  • 音質
    • 遮音性が良いおかげか標準のイヤーピースよりも音が良い気がします

微妙なところ

  • 価格
    • イヤーピースにしては高い
  • 耐久性

総括

純正と比べてお値段はそこそこしますが、お勧めのイヤーピースだと思います。これからはイヤホン(とイヤーピース)は大事に扱います。

便利リンク

たぶん純正の交換用イヤーピースだろうと思われるリンクも張っておきます。誰か試して





NEC PA-WG1900HP2を買った

新しい無線LAN(wifi)ルータを購入しました。NECPA-WG1900HP2です。
https://amzn.to/2Ahz2zj
PA-WG1900HP2

経緯

引っ越しを機に新居のインターネット回線を光回線にしました。プロバイダはSo-netでFlet'sのマンション・ギガラインタイプの光配線方式です。規格値1Gbps出ます。ついでに、新しい無線LANルータを買おうということでNECPA-WG1900HP2を買いました。

購入要件

購入にあたって重視した点は以下の2つの機能です。

手持ちの電子機器に対応機種が増えたきたのと、折角の光回線の速度を体感するためにもIEEE802.11ac対応機種が必要かなと思いました。また、都会は夜間になると光回線が激遅になる問題が発生すると近所の公園に住むネコから聞いたので、プロバイダのv6プラスオプションに対応した機種を選びました。わからない用語は街角にいる動物に尋ねるかサーチエンジンで検索するとよいみたいです。

以上の要件を満たす機種であれば何でも良かったんですが、本機種が2018年7月発売ということだったので買ってしまいました。

設置

設置した図です。ONU - ルータ間はLANケーブルでつながっています。
f:id:shimezikun:20180729000921p:plain

LANケーブルをルータに挿して電源を投入すると、いきなりインターネットに繋がりました。プラグアンドプレイ()です。PPPoEの設定など一切せずに自動判別でv6プラスだと判別して即開通してくれました。

so-netの場合新しく光回線を契約すると、特に手続き無く自動的にv6プラスにしてくれるらしいです。
対応しているルータを買い、設定すれば通信できるみたいです。さらに今回買ったNEC PA-WG1900HP2君は、設定など一切せずに、自動判別で即インターネットの世界に出る事ができました。素晴らしいですね。

感想

良いところ

  • 速度
    • 回線のおかげかルータのおかげか切り分けられませんが、以前の回線と比べるとかなり高速です
  • 設置
    • 上述です
    • 設定をせずに箱から出したら即v6プラスオプションで接続できるたのは良かったです(他社のDS-Lite対応ルータでもできるかもしれませんが)
  • 安定性
    • 安定しています
  • 設定画面
    • 以前使っていたルータと比べて設定画面がかなり分かりやすいです
    • スマートフォン対応なのかレスポンシブなデザインっぽいです
  • コンパクト
    • 高性能な内蔵アンテナのおかげかフットプリントが小さいです
  • 通信性能
    • アパート2Fの窓際に設置したら、見通し30mくらいまで通信できて驚きました (2.4Gで)

悪いところ

    • 筐体が少し熱いです。普通にさわれるくらいですが

総括

使いやすい無線LANルータだと思います。おすすめです。
v6プラスオプションとかDS-LITE/MAP-Eとかに対応するルータを探しているなら特におすすめです。たぶん。

SENNHEISER CX6.00BT を買った

イヤホンがもげたのでSENNHEISER CX6.00BTを買いました。
https://amzn.to/2Gl6BTV
https://amzn.to/2Gl6BTV

経緯

shimezikun.hatenablog.com

↑で紹介したBluetoothなイヤホンが壊れたので新しい物を買いました。
f:id:shimezikun:20180330221026j:plain
(ピンぼけですが筐体の爪がもげてバッテリが露出しています)
筐体が壊れただけなので、電気的にはまだまだ使えます。
ただ露出したLiPoを耳からぶら下げて満員電車に乗るのもアレなので買い替えを決意しました。

購入

SENNHEISER CX6.00BTです。2018年3月発売ということで特に何も考えずにポチりました。こんな風にパッケージングされてます。高級そうですね。
f:id:shimezikun:20180330221526j:plain
付属品です。あと説明書もあります。
f:id:shimezikun:20180330221622j:plain
見た目重視なのでイヤホンを取り外すときは若干注意が必要です。

感想

良いところ

  • コンパクト
    • 以前のイヤホンを購入した時にも重視した点です
    • ボックスレスだから取り回しやすく最高
  • 音質
    • 値段相応の音質を実感できます
    • 3k JPYのBluetoothイヤホンと比較すると、細かい音まで拾えるような気がします
  • 音声コーデック
    • SBC aptX aptX LL
    • aptX Low Latencyに対応してます。スマートフォンでゲームをしたり動画を視聴したりする時に便利かもしれません
    • AACは未対応ですが、まあSBCで十分じゃないでしょうか
  • バッテリ
    • JPA1は耳にLiPoを埋め込んでいましたが、CX6.00 BTはオーディオドライバとは独立した部分にバッテリが存在します
    • 暴漢に突然耳の穴を襲撃されても爆発する恐れが無いので安全ですね
    • カタログスペックで連続6時間くらい再生可能

悪いところ

f:id:shimezikun:20180330232116j:plain

  • 認証情報のタグ
    • 技適など認証情報を示すタグ(シール)が邪魔
    • 剥がしたら電波法にアレするかもしれないのでアレ
  • 充電がmicro USB type B
    • いい加減周辺機器もtype Cにならないかなあ

総括

コンパクトで音質が良いBluetoothイヤホンだと思います。通勤通学の際におすすめです。たぶん。


追記

イヤーピース無くしました。
shimezikun.hatenablog.com