IARプロジェクトでテストフレームを使用したいと考えています。プロセッサはSTM32L0です。IARを使用したSTM32L0x3のターゲットユニットテスト
私が試したもの:& 8K RAM
、そのだけでなく、64KのFlashがあるので動作しませんでしたhttps://cpputest.github.io/stories.html :
https://github.com/cpputest/cpputestはでturoialを追いましたこのフレームワークには十分です
https://github.com/ThrowTheSwitch/Unity.git IAR Embedded Workbenchに移植しようとしましたが、コンパイルエラーも多く、スペースが足りませんでしたので、デスクトップで実行しようとしました。これは、コード内にハードウェアの依存関係が多すぎるためには機能しません。
次は、オンに切り替え可能なデバイスの起動時にテストルーチンを実行することによって「疑似」単体テストを作成しようとしましたプリコンパイラ指令による。ファイルと
#if PREFORM_TESTS TEST_run(); #endif
そして:私は私のSTM32L0x3上でユニットテストを実行するにはどうすればよい
#include "testAll.h" #include "testEvent.h" #include "stm32l0xx_hal.h" void TEST_run(){ TEST_EVENT_run(); } void assert_failed(uint8_t* file, uint32_t line){ while(1); } #include "testEvent.h" #include "testAll.h" #include "event.h" #include "stm32l0xx_hal.h" void test_add_event(); void TEST_EVENT_run(){ test_add_event(); } void test_add_event(){ ASSERT(1); }
この(完成品ではない)のような
?
IAR EWARMにはARMシミュレータがあります。これにはいくつかのCSPYマクロとブレークポイントが組み合わされ、さらにハードウェアをシミュレートして単体テストを実装できます。私はCSPYマクロからC関数を呼び出す方法があると信じていますが、誤っているかもしれません(マニュアルを手元に持っていない)。 – rjp