Closed YazawaKenichi closed 1 year ago
FLASH.ld の、FLASH (rx)
の項目で LENGTH
の量を減らす必要がある。
HAL446 を用いて FLASH の書き込みテストをしようとしているが、Flash 系統の処理を main 内に入れると想定通りの LED の点滅が起こらなくなり、シリアル出力も応答されていない状態になってしまう。
FLASH 系統の処理をコメントアウトしたところ想定通りの LED とシリアル出力を得ることができたので、FLASH 系統の処理に問題がありそう。
FLASH.ld の、
FLASH (rx)
の項目でLENGTH
の量を減らす必要がある。
問題なかった。ちゃんと適切な量に減らされていた。
本来 flash_write()
や flash_read()
の引数は ‘FLASH_SECTOR_num` を指定する必要があるのに
flash_write_all()
や flash_read_all()
の内部では FLASH_SECTOR_num_START_ADDRESS
を指定していた。
これは正しく動くはずがない...
printf
が正しく使用できるかどうか
Hello, World!
を出力させたflash_read/write()
の引数が正しく指定されているかどうか
FLASH_SECTOR_num
がそもそも定義されているかどうか
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h
で定義されているはずなので確認するsector
引数と FLASH_SECTOR_num
の型変換でデータの損失が起きていないかどうか
#define FLASH_SECTOR_5 5U
で定義されていて unsigned 5
が実際の値となるが、sector
変数は正しく受け取ることができているか確認する unsigned
が uint32_t
に変換されてたから unsigned
にそろえた なんか flash print の playmode にして得られる標準出力関数が全部 course print flash になってたけど大丈夫なん?
嘘。大丈夫だった。
course_flash_print()
内でちゃんとモードに応じて出力内容変わるようになってた
playmode
> flash_print
で 14
モードにしたときにちゃんと 9.999f, 8.888f は出力されるのかを確認する。memo
必要な時に必要なセクタだけ書き換えるように処理を書き直したのでこれで実行してみたいところ
今日のタスクリスト