2016-09-29 10 views
1

IARプロジェクトでテストフレームを使用したいと考えています。プロセッサはSTM32L0です。IARを使用したSTM32L0x3のターゲットユニットテスト

私が試したもの:& 8K RAM

enter image description here

、そのだけでなく、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); 
    } 
    

    この(完成品ではない)のような

+0

IAR EWARMにはARMシミュレータがあります。これにはいくつかのCSPYマクロとブレークポイントが組み合わされ、さらにハードウェアをシミュレートして単体テストを実装できます。私はCSPYマクロからC関数を呼び出す方法があると信じていますが、誤っているかもしれません(マニュアルを手元に持っていない)。 – rjp

答えて

1

一般に埋め込まれたターゲットであっても、コード「モジュール」はデスクトップターゲットでコンパイルされます。だからあなたはあなたのテストにモジュールを引き込み、ハードウェア固有のものをモック/モックします。

デバイスにテストフレームワークを配置するための十分なスペースがない場合は、おそらくあなたは(または最小限のものを見つけるべきではありません)。通常のアプリケーションコードを書くのと同じように、テストフレームワークなしでアプリケーションコードにテストを書く必要があります。

関連する問題