STM32 + HAL だいぶわかってきた [つぶやき]
Nucleo32F303K8をmbedとして使わずにSTM32開発ボードとしていじり中。
mbedとして使う気は無いのでSB16,SB18のジャンパを剥がしました。邪魔なので。
とりあえずHALライブラリを使って、
・UARTでPCと通信(ポーリング、割り込み、DMA送信)
・SPIでMMC互換カード(uSD)からファイルread(ポーリング、DMA)
・DACで音声出力(タイマ割り込み、DMA)
の使い方がだいたいわかった。はず。
HALライブラリだけど、、、
ライブラリのコードを読まないと使い方がわからん気がするんだけどそんなもんなんかな。
使い方さえわかればあっさり動くので便利といえば便利なのだけれど。
そんでコードを読んでいると冗長コードがすげぃ多くて気になって仕方がなかったり。
実際、UART、SPI、DAC、DMA、FatFsを組み込んでwavファイルを再生するだけで
Flashサイズ30kBとなかなかに素敵なバイナリサイズに。
F303K8で64kBのFlashがあるのでまあいいじゃんといえばいいのかもだけど(消費電力を気にしなければ)。
関数ごとのサイズを調べてみると、くそでかいのは
・HAL_RCC_OscConfig
・HAL_RCC_ClockConfig
・UART_SetConfig
・HAL_DMA_IRQHandler
・HAL_SPI_TransmitReceive
・HAL_SPI_TransmitReceive_DMA
あたりなので、このへんだけ書き直せばだいぶサイズを減らせるのかなあとか。
いっそHALライブラリを参考にしてレジスタを直で叩くかという気もするけれど、
ポータビリティが無くなるし全部をやるのは苦労の割にそんなに効果がなさそうなので
ポイントを絞って削るほうが良さげ。
mbedとして使う気は無いのでSB16,SB18のジャンパを剥がしました。邪魔なので。
とりあえずHALライブラリを使って、
・UARTでPCと通信(ポーリング、割り込み、DMA送信)
・SPIでMMC互換カード(uSD)からファイルread(ポーリング、DMA)
・DACで音声出力(タイマ割り込み、DMA)
の使い方がだいたいわかった。はず。
HALライブラリだけど、、、
ライブラリのコードを読まないと使い方がわからん気がするんだけどそんなもんなんかな。
使い方さえわかればあっさり動くので便利といえば便利なのだけれど。
そんでコードを読んでいると冗長コードがすげぃ多くて気になって仕方がなかったり。
実際、UART、SPI、DAC、DMA、FatFsを組み込んでwavファイルを再生するだけで
Flashサイズ30kBとなかなかに素敵なバイナリサイズに。
F303K8で64kBのFlashがあるのでまあいいじゃんといえばいいのかもだけど(消費電力を気にしなければ)。
関数ごとのサイズを調べてみると、くそでかいのは
・HAL_RCC_OscConfig
・HAL_RCC_ClockConfig
・UART_SetConfig
・HAL_DMA_IRQHandler
・HAL_SPI_TransmitReceive
・HAL_SPI_TransmitReceive_DMA
あたりなので、このへんだけ書き直せばだいぶサイズを減らせるのかなあとか。
いっそHALライブラリを参考にしてレジスタを直で叩くかという気もするけれど、
ポータビリティが無くなるし全部をやるのは苦労の割にそんなに効果がなさそうなので
ポイントを絞って削るほうが良さげ。
STM32を初めてみようと思いつつ [つぶやき]
何周遅れなんだというのは置いといて。
やりたいことの大抵はMega328で足りるし、
それ以上でもXMEGAが使えればそんなに困ってないし、
と言うのはあるんですが。
とは言え、XMEGAは入手性がよろしくない…
STM32のCoretex-M4のチップ単品が410円というイイカンジの値段で秋月で入手可能だし
だいぶんハヤってるみたいだしなので環境を作ってなんか作ってみようかなあ、などと考えてます。
やっつけ中のブツがまだあるのでなかなか手を付けられれませんが。
#NucleoボードとDiscoveryだけは買った。
んで。
このブログ、なんでかC++関連のメモのほうが閲覧数が多いようで…
そういうのはいくらでも情報があるから需要ないんじゃと思ってたんですがどうなんでしょう?
なんか書いて欲しいネタとかあるか訊いてみたい気もします。
やりたいことの大抵はMega328で足りるし、
それ以上でもXMEGAが使えればそんなに困ってないし、
と言うのはあるんですが。
とは言え、XMEGAは入手性がよろしくない…
STM32のCoretex-M4のチップ単品が410円というイイカンジの値段で秋月で入手可能だし
だいぶんハヤってるみたいだしなので環境を作ってなんか作ってみようかなあ、などと考えてます。
やっつけ中のブツがまだあるのでなかなか手を付けられれませんが。
#NucleoボードとDiscoveryだけは買った。
んで。
このブログ、なんでかC++関連のメモのほうが閲覧数が多いようで…
そういうのはいくらでも情報があるから需要ないんじゃと思ってたんですがどうなんでしょう?
なんか書いて欲しいネタとかあるか訊いてみたい気もします。