2019-09-16
組込みC言語の単体テスト自動化を考える(2)
実行環境とハードウェア
- PC
- あらゆるICを利用することができない。
- マイコン内のペリフェラルすら利用できない
- テストできるのはアプリケーションの結合ロジックのみ(HWモジュールは全滅)
- でもよくぶっ壊れるのは結合ロジックだよね?
- レジスタアクセス禁止
- 関数でWrapして追い出せ
- あらゆるICを利用することができない。
- 基板
- マイコンが使えるようになる
- 基板内に存在する素子は利用できる・・・とは限らない(電源が足りない問題)
- 分離可能なすべてのハードウェアはないものと考える
- FPGAのように第二のプログラムを必要とするものはないものと考える
ペリフェラル
STM32CubeIDEのカテゴリを参考にした。
- SystemCore
- DMA
- GPIO
- IWDG
- WWDG
- NVIC
- RCC
- SYS
- Analog
- ADC
- DAC
- Timers
- RTC
- TIM
- Connectivity
- CAN
- ETH
- FMC
- I2C
- SDIO
- SPI
- UART/USART
- USB
- Multimedia
- DCMI
- DMA2D
- I2S
- LTDC
- SAI
- Security
- RNG
- AES
- PKA
- Computing
- CRC
レジスタアクセス
uint32_t* reg_wwdt_load = (uint32_t*)0x04001234;
reg_wwdt_load = 0x5000;
みたいな処理は