組込みC言語の単体テスト自動化を考える(2)

実行環境とハードウェア

  • PC
    • あらゆるICを利用することができない。
      • マイコン内のペリフェラルすら利用できない
    • テストできるのはアプリケーションの結合ロジックのみ(HWモジュールは全滅)
      • でもよくぶっ壊れるのは結合ロジックだよね?
    • レジスタアクセス禁止
      • 関数でWrapして追い出せ
  • 基板
    • マイコンが使えるようになる
    • 基板内に存在する素子は利用できる・・・とは限らない(電源が足りない問題)
    • 分離可能なすべてのハードウェアはないものと考える
    • 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;

みたいな処理は