ねむいさんファイラーをLinuxでビルドする

日本でSTM32系ブログの筆頭に上がると思われるねむいさんのぶろぐでは、F7 Discoveryでも動作するファイラーを公開されています。
このファイラーにはJPEG/PNG/GIF画像およびWAV/MP3/AACのビューワも統合されています。
コーデックはオープンソースのもので、mp3/aacは昨日触れたHelixです。

ねむいさんのぶろぐ | Project Examples and Misc Files

元はWindowsの開発環境用に構成されていますが、ビルドするだけなら少しの変更でLinux上でも作業できます。
主な変更点はファイル名で、Windowsでは大文字小文字の区別をしませんが、Linuxでは区別しますので、makefile内に記載されているファイル名を修正する必要があります。

ビルドしたものはST-Link Utilityで書き込めます。

操作はUART(VCP)経由なので、ターミナルソフトが必要です。
ターミナルソフトの通信速度は230Kbpsにして下さい。

ファイラーの管理対象はmicroSDカードです。
基本操作はダイヤモンドカーソル(^E ^S ^D ^X)とEnter(決定ボタン)と^Z(Cancelボタン)で行えます。
また、タッチパネルも利用できます。LCDの端の部分が、上下左右のボタンとなっています。

なお、私のDiscoveryボードはちょっと不具合があるようで、基本、下図のようにLCDの横方向の表示が乱れます。
クロックの同期がずれているような感じです。正常に表示できる時間帯もあるのですが、温度などの影響があるのかもしれません。

forester3さんのブログによると、クロック速度を下げると正常に動作するらしいです。

ねむいさんのexampleをクロックダウン – forester3の日記

最後に、makefileの修正部分のdiffをメモ代わりに置いておきます。

$ diff makefile makefile.org 
9c9
< #export PATH = %SYSTEMROOT%;$(TOOLDIR)/bin;$(OCDIR);$(DFUDIR);$(MAKEDIR)
---
> export PATH = %SYSTEMROOT%;$(TOOLDIR)/bin;$(OCDIR);$(DFUDIR);$(MAKEDIR)
100c100
< MSGECHO = /bin/echo
---
> MSGECHO = echo.exe
153,154c153,154
< #EVAL_BOARD    	= USE_STM32F769I_DISCOVERY
< EVAL_BOARD    	= USE_STM32746G_DISCOVERY
---
> EVAL_BOARD    	= USE_STM32F769I_DISCOVERY
> #EVAL_BOARD    	= USE_STM32746G_DISCOVERY
268,272c268,272
< 				$(FWLIB)/Inc  				\
< 				$(USB_DEVICE)/Core/Inc		\
< 				$(USB_HOST)/Core/Inc		\
< 				$(USB_OTG)/Core/Inc			\
< 				$(STEMWIN)/Core/Inc			\
---
> 				$(FWLIB)/inc  				\
> 				$(USB_DEVICE)/Core/inc		\
> 				$(USB_HOST)/Core/inc		\
> 				$(USB_OTG)/Core/inc			\
> 				$(STEMWIN)/Core/inc			\
364d363
< MPU_MODEL_LOWER = $(shell echo $(MPU_MODEL) | tr A-Z a-z)
367c366
< 	$(SOURCE)/startup_$(MPU_MODEL_LOWER)_rtos.s
---
> 	$(SOURCE)/startup_$(MPU_MODEL)_rtos.s
370c369
< 	$(STARTUP_DIR)/startup_$(MPU_MODEL_LOWER).s
---
> 	$(STARTUP_DIR)/startup_$(MPU_MODEL).s
377,396c376,395
<  $(FWLIB)/Src/stm32f7xx_hal.c			\
<  $(FWLIB)/Src/stm32f7xx_hal_cortex.c	\
<  $(FWLIB)/Src/stm32f7xx_hal_rcc.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_rcc_ex.c	\
<  $(FWLIB)/Src/stm32f7xx_hal_pwr.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_pwr_ex.c	\
<  $(FWLIB)/Src/stm32f7xx_hal_gpio.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_uart.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_tim.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_i2c.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_sdram.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_dma.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_ltdc.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_dma2d.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_qspi.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_dsi.c		\
<  $(FWLIB)/Src/stm32f7xx_hal_ltdc_ex.c	\
<  $(FWLIB)/Src/stm32f7xx_hal_sai.c		\
<  $(FWLIB)/Src/stm32f7xx_ll_fmc.c		\
<  $(FWLIB)/Src/stm32f7xx_ll_sdmmc.c		\
---
>  $(FWLIB)/src/stm32f7xx_hal.c			\
>  $(FWLIB)/src/stm32f7xx_hal_cortex.c	\
>  $(FWLIB)/src/stm32f7xx_hal_rcc.c		\
>  $(FWLIB)/src/stm32f7xx_hal_rcc_ex.c	\
>  $(FWLIB)/src/stm32f7xx_hal_pwr.c		\
>  $(FWLIB)/src/stm32f7xx_hal_pwr_ex.c	\
>  $(FWLIB)/src/stm32f7xx_hal_gpio.c		\
>  $(FWLIB)/src/stm32f7xx_hal_uart.c		\
>  $(FWLIB)/src/stm32f7xx_hal_tim.c		\
>  $(FWLIB)/src/stm32f7xx_hal_i2c.c		\
>  $(FWLIB)/src/stm32f7xx_hal_sdram.c		\
>  $(FWLIB)/src/stm32f7xx_hal_dma.c		\
>  $(FWLIB)/src/stm32f7xx_hal_ltdc.c		\
>  $(FWLIB)/src/stm32f7xx_hal_dma2d.c		\
>  $(FWLIB)/src/stm32f7xx_hal_qspi.c		\
>  $(FWLIB)/src/stm32f7xx_hal_dsi.c		\
>  $(FWLIB)/src/stm32f7xx_hal_ltdc_ex.c	\
>  $(FWLIB)/src/stm32f7xx_hal_sai.c		\
>  $(FWLIB)/src/stm32f7xx_ll_fmc.c		\
>  $(FWLIB)/src/stm32f7xx_ll_sdmmc.c		\

コメント