STM32CubeIDEにGitを追加する
STM32CubeIDE(2019/06/11)には、デフォルトでGitが付属していなかったため、以下の手順でGitを追加する。
メニューからHelp->Eclipse Marketplaceを選択する。
Egitを追加する。Egitは、Eclipse用のgit環境のようなもの。
インストールをおして、インストール
とりあえずデフォルトのオプションでインストールする。
ライセンス等をacceptして、Finish.
インストールが終わったら、プロジェクトを右クリックし、Team->Share Projectを選択する。
左上のチェックボックスにチェックを入れて、対象のプロジェクトをGitの構成管理対象とする。その後、Create Repositoryを押して、Git リポジトリを作成する。
Repositoryに.gitが表示されたらFinishを押して終わる。
上記までの手順で、プロジェクトフォルダにGitリポジトリが作成されるため、構成管理対象としたいファイルをコミットする。
STM32CubeIDEでLチカ
STM32CubeIDEを使って、NUCLEO-F401REでLチカするまでを記録する。
STM32CubeIDEを起動する。
起動時にWorkSpaceの場所を聞かれるため、任意のパスを指定する。
Start new STM32 projectを選択する。
Board Selectorのタブを選択し、NUCLEO-F401REを検索して、右下のリストから選択する。ボードを選択したら[Next]を選択して、次に行く。
Project Setupでプロジェクト名を入力し、プロジェクトの設定を行う。
プロジェクトのOptionはデフォルトのままとする。入力が完了したらFinishを押して、プロジェクトを生成する。Finish後メッセージが複数表示されるが、ここではすべてOKでよい。
プロジェクトの生成が完了すると、以下のような画面が表示される。
まずは、そのままプロジェクトがBuildできることを確認してみる。右上のトンカチアイコンをクリックするだけでBuildが可能であった。
生成されたプロジェクトのmain.cのwhileループ内に以下の2行を追加する。
HAL_GPIO_TogglePin( GPIOA, GPIO_PIN_5 ); // この2行を追加 HAL_Delay( 1000 );
Debugを開始する。
メニューの虫アイコンを押す。
以下の画面が表示されるためSTM32 MCU C/C++ Applicationを選択する。
デバッガの選択は、以下のようにデフォルトのままでよい。
GDB接続設定はST-LINKのままでよい。
デバッグしようとして、NUCLEO側のST-Linkのファームウェアが古い場合は、ファームウェアの更新が求められるため、ファームウェアを更新する。以下の画面が表示さえれたら、Open in update modeを選択したあとに、Upgradeを選択して、更新する。
実行できたら、ソースコードの左側をダブルクリックして、ブレークポイントで処理がとまることを確認する。
STM32CubeIDEのインストール
STM32CubeIDEは、統合開発環境に STM32CubeMXを 合わせて、デバッグまでできるというソフトウェアである。
以下のサイトから入手する。
https://www.st.com/ja/development-tools/stm32cubeide.html
ページの下部から、自分の開発環境にあったインストーラを入手する。
今回の自分の環境は、Windows10 64bitである。
インストール方法は、とりあえずすべて[Next]で問題なし。
次回はNUCLEO-F401REでLチカできることを確認する。
RaspberryPiでCtrl-Caps入れ替え
RaspberryPiでもCtrl-Caps入れ替えを行いたい場合は以下を修正する
$ sudo vi /etc/default/keyboard
/etc/default/keyboard
#XKBOPTIONS=""
XKBOPTIONS="ctrl:swapcaps"
LIRCで/etc/lirc/hardware.confファイルが存在しない
Raspberrypiで赤外線を送受信しようと思っていましたが、久しぶりにRaspberryPiにLIRCをインストールしてみたら、LIRCでハードウェアの設定を行うための/etc/lirc/hardware.confが存在しなくなっていた。
Raspbian Stretchから、/etc/lirc/hardware.confではなく、/etc/lirc/lirc_options.confファイルを編集するようである。
[lircd]
nodaemon = False
driver = default
device = /dev/lirc0
output = /var/run/lirc/lircd
pidfile = /var/run/lirc/lircd.pid
plugindir = /usr/lib/arm-linux-gnueabihf/lirc/plugins
permission = 666
allow-simulate = No
repeat-max = 600
#effective-user =
#listen = [address:]port
#connect = host[:port]
#loglevel = 6
#uinput = ...
#release = ...
#logfile = ...
ファイル内の以下を修正する。
driver = default
device = /dev/lirc0
以下のコマンドを実行するのが手っ取り早い。
sudo sed -i -e "s/driver = devinput/driver = default/g" /etc/lirc/lirc_options.conf
sudo sed -i -e "s/device = auto/device = \/dev\/lirc0/g" /etc/lirc/lirc_options.conf
/boot/config.txtの変更方法も変わっている。
#RemoteController
dtoverlay=lirc-rpi
dtparam=gpio_in_pin=22
dtparam=gpio_out_pin=23
再起動して、設定を反映する。
$ sudo reboot
動作確認
再起動後、モジュールが有効になっているかを確認する。
$ lsmod | grep lirc
lirc_rpi 7355 3
lirc_dev 10391 1 lirc_rpi
rc_core 17576 1 lirc_dev
RaspberryPiにデバイスとして認識されていることを確認。
$ ls -l /dev/lirc*
crw-rw—T 1 root video 248, 0 Oct 25 22:19 /dev/lirc0
最後に、リモコンコードを受信できるかテストする。
以下のコマンドを入力し、リモコンを受光モジュールに向けて押すと、受信信号が出力される。
$ sudo /etc/init.d/lircd stop
$ sudo mode2 -d /dev/lirc0