LPC4330 DWT used on Event Recorder for GCOV/UNITY Test Coverage Generation

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

LPC4330 DWT used on Event Recorder for GCOV/UNITY Test Coverage Generation

ソリューションへジャンプ
733件の閲覧回数
lpestanas
Contributor III

Hi NXP Team,

We are trying to use the Event Recorder to produce test coverage results for GCOV/UNITY.

This will be executed by using the Keil Simulator. We are setting the EVENT_TIMESTAMP_SOURCE = 0 in EventRecorderConf.h to skip the double declaration of Systick_Timer IRQ Handler. When we do this, the 1st source file to generate the GCOV Test Coverage produces wrong results and followed with the other source files with zero percent test coverage. Debugging inside makes the progress step by step even if we dont put a breakpoint, meaning it stops with Access Violation on 0xE0000001 even pressing the RUN button to finish the test.

But if we use the EVENT_TIMESTAMP_SOURCE = 1 in EventRecorderConf.h, we need to exclude any duplicated Systick_Handler IRQ Definition along the code to prevent the compilation error and retain the one in EventRecorder.c. This can finish the test inside debug without breakpoint by pressing the RUN Button.

We noticed also the CMSIS File named core_cm4.h v2.10 has no definition of the DWT Structure. While the latest LPCOpen Library has the DWT Definition. Is the DWT feature enabled on LPC4330FBD144 using it together the EventRecorder without any complications? Please advise.

Thanks and Good Day,

Leo

タグ(2)
0 件の賞賛
返信
1 解決策
682件の閲覧回数
lpestanas
Contributor III

I finally managed to solve the problem by Mapping the DWT locations on UNITY/GCOV Environment.

Added address definitions with READ/WRITE Access on .ini file from 0xE0000000 to 0xE000EDFC.

The test coverage now appears without linker error on Systick_Handler IRQ with EVENT_TIMESTAMP_SOURCE = 0.

元の投稿で解決策を見る

0 件の賞賛
返信
3 返答(返信)
683件の閲覧回数
lpestanas
Contributor III

I finally managed to solve the problem by Mapping the DWT locations on UNITY/GCOV Environment.

Added address definitions with READ/WRITE Access on .ini file from 0xE0000000 to 0xE000EDFC.

The test coverage now appears without linker error on Systick_Handler IRQ with EVENT_TIMESTAMP_SOURCE = 0.

0 件の賞賛
返信
724件の閲覧回数
kevin458
Contributor I

The issue likely stems from incorrect configuration of the Event Recorder with EVENT_TIMESTAMP_SOURCE = 0. Verify DWT availability for your LPC4330FBD144. Use EVENT_TIMESTAMP_SOURCE = 1 with proper SysTick handler management. Simplify your test case and use a debugger to pinpoint the issue.

0 件の賞賛
返信
714件の閲覧回数
lpestanas
Contributor III
Hi Kevin458,

I already tried playing with those settings. The DWT is not a component of LPC4330FBD144 but it was a component of CMSIS core_cm4.h file. The release of this CMSIS file dated July 2011 contains no DWT structure originally. But the latest LPCOpen Library has the updated CMSIS that includes this DWT. Which makes me think that DWT feature was not really tested to be compatible with other tools such as UNITY/GCOV.

The only thing that I tried so far is to use a preprocessor variable to exclude the definition of Systick_Handler to avoid the linker error which states that it got multiplied. And got the coverage. Anyway, thanks for the input.

Thanks and Good Day,
Leo
0 件の賞賛
返信