STM32CubeIDE Ver2 テキスト選択問題
STM32CubeIDE macOS Tahoe 26でのテキスト選択問題対策
1.概要
macOS 26へアップデートしたところSTM32CubeIDEのテキスト選択で複数行選択しても1行しかハイライトされない問題が発生したため対策を調査・実施
2.不具合情報と調査
1)不具合に関するスレッド
Cannot select multiple lines of text in Eclipse 2025-09 on macOS Tahoe 26.1 #2244
(1)要点
macOS Tahoe 26.1 でSTM32CubeIDEを使用
・複数行のテキストを選択することは可能
・視覚的なフィードバックだけが機能しない
(2)問題点と対策
Eclipseのバージョンが古い
Tahoe 26.2 と Eclipse 4.38(2025-12)では、上記のような問題はない
3.課題と対策
1) STM32CubeIDEでの課題
最新のSTM32CubeIDE V2.1.1はEclipse 2024-09で構成されている
このため不具合が発生する
残念ながらEclipseのみのアップデートはサポートされていない
2)対策内容
(1)対策内容と参照ページ
アップデートが必要なプラグインを手動で入れ替える
macOS 26.1 Tahoe - ベンダーEclipse-IDEのテキスト選択問題修正
4.対策実施内容
参照ページはリンク切れ等あるので補足
1)手順
(1)プラグインダウンロードURL
Eclipse HOME / DOWNLOADS / REPORT / DOWNLOAD.ECLIPSE.ORG / STAGING
ここでファイル名を手掛かりに最新版を探す
(2)ダウンロードファイル
org.eclipse.swt_3.132.0.v20251124-0642.jar
org.eclipse.swt.cocoa.macosx.aarch64_3.132.0.v20251124-0642.jar
参照ページではx86_64が必要となっていたがこちらの環境(詳細下記)ではaarch64で動作中
(3)プラグインファイル変更
・元のファイル退避
/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins
org.eclipse.swt_3.127.0.v20240903-0618.jar
org.eclipse.swt.cocoa.macosx.aarch64_3.127.0.v20240903-0618.jar
・ダウンロードしたファイルのファイル名を元のファイル名に変更
・pluginsフォルダー内へコピー
上書きでも良い
(4)おまじない
$HOME/.swtを削除
・ファインダーでホームディレクトリーを表示
・「command」+「shift」+「.」 で、隠しファイル表示
・.swtフォルダを削除
4.動作確認
STM32CubeIDEを起動してテキスト選択してみる
うまく変更できていないとエラーで起動しない
5.解説
・問題なく動いているので次のバージョンアップまではこれでいけそう
参照ページではどうやって調べたのかわかりませんがありがたく使わせていただいています
・ 元のファイルがaarch64だったのでaarch64を使用
・ x86_64ファイルの使用については未確認
・ファイル名変更要否は未確認
6.おまけ:STM32CubeIDE Ver2 使い方メモ
1)使い方とポイント
(1)参考資料
STM32CubeIDE Ver.2.0.0の仕様変更
(2)ポイント
・MXとIDEは別々のアプリになった
別々の方がスッキリして良い
・STM32CubeMX「Project Manager」タブ内「Toolchain / IDE」の設定変更
2)バージョン情報
・MacBook Air M1, 2020
macOS 26.4 Tahoe
・STM32CubeMX Ver 6.17.0
・STM32CubeIDE Ver 2.1.1
ST-Link V2J47S7
おしまい
STM32C011低消費電力モード(4) Shutdown modeとwake-up pin
1.概要
Shutdownモードへの遷移とwakeup pin での解除
2.資料
1)参考資料
Standbyと同じ
3.コード例概要
1)低消費電力モード
低消費電力モード:Shutdown
ウェイクアップ:wake-up pin
2)コード
Shutdownモードへの遷移とwakeup pin での解除
4.wake-up pin 構成
1)ブロック図
Standbyと同じ
2)STM32C011J4/J6 wake-up pin
Standbyと同じ
|
pin No. |
Wake-Up |
Default |
||
|
4 |
Wake-Up 1 |
NRST |
Input |
pull-up |
|
Wake-Up 4 |
||||
|
8 |
Wake-Up 3 |
SWCLK |
Input |
pull down |
3)Shutdownシーケンス
|
Mode / Resource |
Run |
Shutdown |
wake-up |
備考 |
|
PWR_FLAG_WUF |
(L) |
L |
H |
wake-up 遷移フラグ ・wake-up でセット ・H状態のままShutdown に入るとすぐに復帰する ・各wake-up pin 個別にセットされる |
|
GPIO及び周辺回路 |
動作 |
停止 |
再設定 |
wake-up後再設定必要 |
5.STM32CubeMX設定
Standbyと同じ
6.コード
1)Shutdownから復帰
StandbyのようにShutdownからの復帰かどうかを識別保持するレジスターはない
2) Shutdownへ遷移
STM32C011低消費電力モード(3)Standby modeとwake-up pin
1.概要
Standbyモードへの遷移とwakeup pin での解除
2.資料
1)参考資料
・STM32C0 - PWR(電源制御)
・AN4759
Introduction to using the hardware real-time clock (RTC) and the tamper management unit (TAMP) with STM32 MCUs
・UM3029
Description of STM32C0 HAL and low-layer drivers
3.コード例概要
1)低消費電力モード
低消費電力モード:Standby
ウェイクアップ:wake-up pin
2)コード
Standbyモードへの遷移とwakeup pin での解除
4.wake-up pin 構成
1)ブロック図
内蔵プルアップ、プルダウンとシュミット入力バッファを介してウェイクアップ非同期ラッチ回路に直結
・動作状況から推測
・ポート設定状態に関わらずウェイクアップ入力として使える


2)STM32C011J4/J6 wake-up pin
|
pin No. |
Wake-Up |
Default |
||
|
4 |
Wake-Up 1 |
NRST |
Input |
pull-up |
|
Wake-Up 4 |
||||
|
8 |
Wake-Up 3 |
SWCLK |
Input |
pull down |
3)Standbyシーケンス
|
Mode / Resource |
Run |
Standby |
wake-up |
備考 |
|
PWR_FLAG_SB |
- |
H |
H |
Standby mode 遷移フラグ ・Standby mode 遷移でセット |
|
PWR_FLAG_WUF |
(L) |
L |
H |
wake-up 遷移フラグ ・wake-up でセット ・H状態のままStandby に入るとすぐに復帰する ・各wake-up pin 個別にセットされる |
|
GPIO及び周辺回路 |
動作 |
停止 |
再設定 |
wake-up後再設定必要 |
5.STM32CubeMX設定
1)GPIO
いずれのピンも必要に応じて設定
・LED2(PC14) : Output LED2
・ADC1_IN12 : SWD復帰シーケンス遷移用
・GPIO_Input(PA0) : NRSTマスク用
2)Power and Terminal
PWR 設定不要

6.コード
1)Standbyから復帰
STM32C011低消費電力モード(2)RTCとウェイクアップ
RTCによるウェイクアップ詳細とアプリケーション例
1.概要
STOPモードへ遷移しRTC Sub Second Alarm で解除する
2.資料
1)お手本
RTC as wakeup-source on C0 family
2)参考資料
・STM32C0 - PWR(電源制御)
・STM32C0 - RTC
・AN4759
Introduction to using the hardware real-time clock (RTC) and the tamper management unit (TAMP) with STM32 MCUs
3.アプリケーションイメージと仕様
1)アプリケーションイメージ
車載イモビライザー用インジケーターのようなLED瞬灯点滅
2)モード
低消費電力モード:STOP
ウェイクアップ:RTC Sub Second Alarm A
3)仕様
LED瞬灯点滅周期:約500ms
LED瞬灯時間設定:分解能 約4ms
4.RTC Sub Second Alarm A
1)カウンター構成
(1)ブロック図

(2)デフォルト周波数
Sub Secondのクロック ck_apre = rtc_ker_ck / Async
低速内部32kHz RC発振器(LSI)デフォルト
|
Clock |
用途 |
Frequency |
Period |
Rate |
|
rtc_ker_ck |
Source |
32kHz |
31.25 us |
- |
|
ck_apre |
Sub Second |
250 Hz |
4 ms |
1/128 |
|
ck_spre |
Second |
0.9466 Hz |
1.024 sec |
1/256 |
【参考】
|
Clock |
用途 |
Frequency |
Period |
Rate |
|
rtc_ker_ck |
Source |
32kHz |
31.25 us |
- |
|
ck_apre |
Sub Second |
250 Hz |
4 ms |
1/128 |
|
ck_spre |
Second |
1 Hz |
1 sec |
1/250 |
|
Clock |
用途 |
Frequency |
Period |
Rate |
|
rtc_ker_ck |
Source |
32.768 kHz |
30.32 us |
- |
|
ck_apre |
Sub Second |
256 Hz |
3.906 ms |
1/128 |
|
ck_spre |
Second |
1 Hz |
1 sec |
1/256 |
2) Alarm A 構成
(1)ブロック図


(3)Sub Second ブロック図
アラーム動作から推測したブロック図
・詳細はデータシート等に記載されていない
・Sub SecondのAlarm A設定時間更新タイミングはSub Secondアラーム一致毎

(4)マスク設定とSub Second アラーム比較判定周期 LSE=32.768kHz

(5)Sub Second Alarm A設定値一覧
|
内容 |
||
|
RTC prescaler register RTC_PRER |
PREDIV_A[6:0] |
Sub Secondカウンタプリスケラー カウントクロック設定 |
|
RTC alarm A sub second register RTC_ALRMASSR |
MASKSS[3:0] |
Sub Secondマスク アラーム比較判定周期設定 |
|
SS[14:0] |
Sub Seconds値 Alarm A設定時刻 |
|
5.コードシーケンス
1)シーケンス

2)タイミング

6.STM32CubeMX設定
1)Clock Configuration
RTC : 32kHz(32.768kHz)
SYSCLK : 任意

2)RTC
Alarm A
Alarm Mask : RTC_ALARMMASK_ALL
Alarm Sub Second Mask : Only SS[6:0]
NVIC : Enable
3)GPIO
PC14 : Output LED2

7.コード
1)<main.c> 抜粋
STM32C011低消費電力モード(1)機能概要
1.概要
STM32C011は5種類の電力モードがありその内4種類が低消費電力モードになっている
低消費電力モードへの遷移復旧や書き込みについてまとめる
STM32C011 Writer Adapter(7)低消費電力モードの詳細(重複内容あり)
2.参考資料
・RM0490 Reference manual
・STM32C011x4/x6 Datasheet - production data
・STM32C0 - PWR(電源制御)
・AN5673 Getting started with STM32C0 MCU hardware development
3.各電力モード比較
|
機能 |
リソース |
RUN |
SLEEP |
STOP |
STANDBY |
SHUTDOWN |
|
リセット |
NRST |
◯ |
◯ |
◯ |
◯ |
◯ |
|
BOR/POR/PDR |
◯ |
◯ |
◯ |
◯ |
× |
|
|
IWDG |
◯ |
◯ |
◯ |
◯ |
× |
|
|
ウェイクアップ |
ウェイクアップ・ピン |
◯ |
◯ |
◯ |
◯ |
◯ |
|
RTC / オート・ウェイクアップ |
◯ |
◯ |
◯ |
(×) ※1 |
× |
|
|
LSEクロック・セキュリティ |
◯ |
◯ |
◯ |
× |
× |
|
|
すべてのGPIO |
◯ |
◯ |
◯ |
△※2 |
△※2 |
|
|
USART1/2 |
◯ |
◯ |
◯ |
× |
× |
|
|
I2C1 |
◯ |
◯ |
◯ |
× |
× |
|
|
SWD |
◯ |
◯ |
× |
× |
× |
|
|
クロック |
HSI48, HSE, CSS |
◯ |
◯ |
× |
× |
× |
|
◯ |
◯ |
◯ |
◯ |
× |
||
|
◯ |
◯ |
◯ |
× |
× |
||
|
メモリー |
◯ |
◯ |
× |
× |
× |
|
|
◯ |
◯ |
◯ |
× |
× |
||
|
バックアップレジスタ |
◯ |
◯ |
◯ |
◯ |
× |
|
|
消費電流 |
電流標準値 |
58uA/MHz at 48MHz |
20uA/MHz at 16MHz |
80uA |
7.45uA |
19nA |
|
消費電流目安 |
2.78mA |
320uA |
||||
|
実測値 |
ー |
ー |
77uA |
7.8uA |
測定不能※3 |
※1 リファレンスマニュアルにはRTC停止と書かれているが
STM32C0- PWR(Power management) にはリセットリソースとして有効になっている
※2 GPIOはアナログモードに設定されてPU/PD/フローティングは保持される
※3 計測可能な測定器を持っていないため
4.低消費電力モードでのデバッグ機能 コード書込みについて
1)デバッグ機能の状態
・ STOP、STANDBY、SHUTDOWNでFCLKとHCLKが停止するのでデバッグ機能が停止する
・デバッグ機能を維持するには
STOP:DBG_CRレジスタのDBG_STOPビットを設定
STANDBYとSHUTDOWN: DBG_STANDBYビットを設定
ただし、 FCLKとHCLKがアクティブになるため消費電力が増加する
2)コード書込み
(1)問題点
SWDピンがSWDモードになっていても書き込みできない場合がある
(2)書き込みできない状態
NRSTピンがポートモードで起動後少なくとも概略300ms〜800msの間STOP、STANDBY、SHUTDOWN状態になっている
起動後すぐに低消費電力モードへ遷移し待機する場合等デバッグ機能停止により書込復旧できない
(3)対応策
起動後SWDモード保持或いはSWDポートに復帰する例外シーケンスを書き込んでおく等
詳細
STM32C011(4)書込み要件
5.解説
1)全般
・消費電流が許容できれば処理継続が容易なSTOPモードが使いやすい
・NRST、SWDピンをポートモードで使う場合は書込み・復旧できなくなる可能性が高いので事前対応が必要
2) NRST、SWDピンをポートモードで使う場合
(1)状況
STOP、STANDBY、SHUTDOWNを使用するとSWDピンがSWDモードになっていても書込み・復旧できなくなる状況が多いと思われる
SWD復帰シーケンスを書いておくと安心
(2)電源再投入(Power On Reset)でリセットを発生させる場合
・STOP、STANDBYは対応可能
・SHUTDOWNは動作が保証されているかは不明であるが動作すると思われる
Shutdown mode 遷移後チップが動作する電圧範囲内では電源系リセットは無効
BORリセットへ遷移するのはNRSTとウェイクアップ・ピンのみ
電圧が低下すると動作状態不定
マニュアル等にShutdown mode 遷移後の電源再投入でリセットが機能するかどうかの明確な記述は見当たらないが記述状況から動作すると思われる
念のためNRSTピンはAN5673(Getting started with STM32C0 MCU hardware development)推奨回路相当にするのが無難
サンプル数は少ないが動作は確認済
続く
STM32C011 Writer Adapter(8)使い方メモ
1.STM32CubeIDEデバッガ設定
デフォルト設定から変更なし

2.接続

1)ST-LINK接続
RSTは未接続
2)電源
電源は3V3に接続し3V3_OUTからターゲットに供給する
3)ターゲットオンボード書き込み注意事項
(1)ターゲット側電源回路
・3端子レギュレーターや類似回路構成の電源回路がある場合は接続しないこと
使用する場合は3端子レギュレーター入出力間にダイオードを入れる等の保護回路を設けておく
・Writer Adapterの電源リセット機能によってターゲットチップの電源電圧が2msec以内に低下しないと書き込めない
ターゲット側電源に逆接続防止回路(ダイオード等)、容量の大きなコンデンサ、電流制限抵抗等々がある場合
【参考】
【3端子レギュレータとは?】『使い方』や『型番(7805等)』などを分かりやすく解説!
(2)SWDIO, SWCLK
・通信に支障がない回路構成にすること
ST-LINK側が電流制限抵抗等で保護されている場合は出力ポートに設定できる
(3)NRST
・Writer Adapter側出力ポートで駆動できる回路構成にすること
ターゲット側NRSTピンに接続された静電容量が大きいとH出力後の充放電遅れによって書き込めなくなる場合がある
ターゲット側STM社推奨のC104接地で動作確認済
Writer Adapter側出力ポートはST-LINK回路に倣って電流制限抵抗R101で保護
3.操作手順
1)Runモード
・ライター側Run起動
状態 Run Wait : LED赤と緑が点灯してから起動する(書き込み起動確認5秒間待ってから)
・書込み起動後のSWDポート通信状態
有効:自動的にターゲット通電状態戻り書き込み起動確認5秒間待ってから連続して書き込める
無効:ターゲット通電状態に戻らないためWriter Adapter再起動(電源OFF-ON)が必要
リカバーシーケンスは実装していないため書込みエラーが発生した場合はWriter Adapter再起動(電源OFF-ON)が必要
2)Debugモード
・ライター側Debug起動
状態 Run Wait : LED赤と緑が点灯してから起動する(書き込み起動確認5秒間待ってから)
・Resume Debug継続
起動後はSWDポート通信が可能であれば随時Debug継続操作可能
|
状態 |
時間 |
LED |
操作 |
|
|
RST_OUT |
3V3_OUT |
|||
|
起動 |
- |
● |
◯ |
|
|
● |
●◯ |
|
||
|
ターゲット通電 |
5sec |
◯ |
● |
|
|
Debug Wait(Debug起動後) |
- |
◯ |
● |
ライター Resume起動 |
|
Power Down Reset |
2msec |
● |
◯ |
|
|
Run Wait |
- |
● |
● |
ライター Run, Debug起動 |
|
書込み |
- |
●◯ |
● |
|
4.低消費電力モード対応
低消費電力モードで待機中の書込みについて
・NRSTピンがポートモードでSHUTDOWNモード待機中は電源系リセットが無効のための書込みできない
SWD復帰シーケンスを書いておく
・ STOP、STANDBYは書込み可能
おしまい
STM32C011 Writer Adapter(7)低消費電力モード
低消費電力モードを使用する場合の注意事項
1.概要
低消費電力モードでデバッグ機能が停止して書き込めなくなる場合があるので問題点と対応策について
2.低消費電力モードでのデバッグ機能
1)STマイクロ社資料
(1)RM0490 Reference manual
30.9.1 Debug support for low-power modes
(2)要約
・ STOP、STANDBY、SHUTDOWNでFCLKとHCLKが停止するのでデバッグ機能が停止する
・デバッグ機能を維持するには
STOP:DBG_CRレジスタのDBG_STOPビットを設定
STANDBYとSHUTDOWN: DBG_STANDBYビットを設定
ただし、 FCLKとHCLKがアクティブになるため消費電力が増加する
3.問題点と対応
1)問題点
下記の場合SWDピンがSWDモードになっていてもデバッグ機能停止により書込み・復旧できない
・NRSTピンがポートモードになっている
・起動後少なくとも概略300ms〜800msの間STOP、STANDBY、SHUTDOWN状態になっている
例えば、起動後すぐに低消費電力モードへ遷移し待機する場合
2)対応策
起動後SWDモード保持或いはSWDポートに復帰する例外シーケンスを書き込んでおく等
詳細
STM32C011(4)書込み要件
4.解説
・NRSTピンをポートモードにして低消費電力モードを使用するとSWDピンがSWDモードになっていても書込み・復旧できなくなる状況が多いと思われる
・NRSTピンをポートモードで使う場合はSWD復帰シーケンスを書いておくと安心
更に調査中

- もっと読む
コメントを書く