SSブログ

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ライブラリを参考にしてレジスタを直で叩くかという気もするけれど、
ポータビリティが無くなるし全部をやるのは苦労の割にそんなに効果がなさそうなので
ポイントを絞って削るほうが良さげ。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。