Mbed-os: lp_ticker and RTC tests failing for platforms based on STM32F412xx

Created on 10 Apr 2018  路  19Comments  路  Source: ARMmbed/mbed-os

Description

  • Type: Bug | Question
  • Related PR's: #6511 and #6423
  • Priority: Major

Bug

Target
MTB_USI_BN-BM-22 and MTB_ADV_WISE_1530

Toolchain:
ARM

Expected behavior
All greentea tests should pass for the targets.

Actual behavior
LP_Ticker, LP_timer and RTC tests are failing on ARMCC 5.06 update 3.

Steps to reproduce
Run greentea on these 2 targets with ARMCC

Greentea logs are attached in the PR: https://github.com/ARMmbed/mbed-os/pull/6511#issue-178369355
And failing tests for ADV_WISE_1530 are added as comments here: https://github.com/ARMmbed/mbed-os/pull/6423#issuecomment-377179117

closed_in_jira mirrored bug

All 19 comments

STM32F412xx

@ARMmbed/team-st-mcd Is this known issue ? Please review

Hi

I know that NUCLEO_F412ZG is failing tests-mbed_drivers-lp_timeout since 5.8.1
Other LP tests are OK.
No known issue with RTC tests.

Note that we will not investigate on LP failed tests before the ticker branch merge.

We can discuss in parallel about your clock configuration:

  • USI WM-BN-BM-22: I can see from the targets json file that you have a LSE and no HSE.
    This is OK, but could be a problem for tests part... as several tests check the accuracy of time with the us timer which is clocked in your case with HSI, the internal low cost clock.
    As you have an external LSE clock, idea could be to make a calibration procedure.

  • MTB_ADV_WISE_1530: targets json file doesn't explicit your clock configuration, which is not correct.

Note that we will not investigate on LP failed tests before the ticker branch merge.

You are referring to the ticker hal specs feature branch? This then becomes known issue for 5.8.x - should these target have disabled low ticker as it is not fully functional?

The tests-mbed_drivers-lp_timeout test is FAIL on many of our targets since 5.8.1. It was perfectly fine in 5.8.0 and the versions before. For sure something has been broken. But I don't understand how the 5.8.1 has been released ? Nobody has seen these FAILs ?

Looking at 5.8.1 - https://github.com/ARMmbed/mbed-os/pull/6461 - tests were updated (timeout) - that would be the reason for the failures @fkjagodzinski Please confirm

That is correct, #5106 which contains an update for LowPowerTimeout tests has been merged to 5.8.1.

so that update broke it. @fkjagodzinski Can you have look ? Is it a test or targets?

I've checked the logs from https://github.com/ARMmbed/mbed-os/pull/6511#issue-178369355 and can see that some test suites are present only for ARM compiler:

  • mbed-os-tests-mbed_drivers-lp_ticker,
  • mbed-os-tests-mbed_drivers-lp_timeout,
  • mbed-os-tests-mbed_drivers-lp_timer,
  • mbed-os-tests-mbed_hal-lp_ticker.

Since I don't have any board with STM32F412ZG, I can only check that adding LOWPOWERTIMER definition in targets.json and running mbed test -t <toolchain> -m MTB_USI_WM_BN_BM_22 -c -n tests-mbed_drivers-lp_timeout on current master df47efc4ca5b2fb751689b98b598103f713be39c does actually produce a binary for all 3 compilers.

@ashok-rao could you run mbed test -t <toolchain> -m MTB_USI_WM_BN_BM_22 -n tests-mbed_drivers-lp_timeout -v for all ARM, GCC_ARM & IAR and paste the logs, please?

@fkjagodzinski , I can't build those test suites now.. every time I try to build the tests (with clean compile), the tests for LP_timer, lp_ticker, lp_timeout are being skipped both with GCC and ARMCC.. any thoughts why it was being compiled in the earlier run (#6511) and is being skipped now? Or do you recommend to explicitly add LOWPOWERTIMER to targets.json and build again?

Build skips:
<snip>
  * MTB_USI_WM_BN_BM_22::ARM::MBED-OS-TESTS-MBED_DRIVERS-LP_TICKER
  * MTB_USI_WM_BN_BM_22::ARM::MBED-OS-TESTS-MBED_DRIVERS-LP_TIMEOUT
  * MTB_USI_WM_BN_BM_22::ARM::MBED-OS-TESTS-MBED_DRIVERS-LP_TIMER

and with GCC:

Build skips:
<snip>
  * MTB_USI_WM_BN_BM_22::GCC_ARM::MBED-OS-TESTS-MBED_DRIVERS-LP_TICKER
  * MTB_USI_WM_BN_BM_22::GCC_ARM::MBED-OS-TESTS-MBED_DRIVERS-LP_TIMEOUT
  * MTB_USI_WM_BN_BM_22::GCC_ARM::MBED-OS-TESTS-MBED_DRIVERS-LP_TIMER

Yes, these tests are built only when LOWPOWERTIMER macro is defined, so you should either edit targets.json or use -D compile option.

@fkjagodzinski But, we did not have LOWPOWERTIMER defined in targets.json for the commit 1df5c020b966ac464edde0748903b0693de3aa2f too. How come it was being built then..!

@ashok-rao No idea.. :confused: Morph build logs from https://github.com/ARMmbed/mbed-os/pull/6511#issuecomment-378182965, e.g. [...]build_log_MTB_USI_WM_BN_BM_22_GCC_ARM.txt list these tests as skipped.

RTC tests will pass by setting "overrides": {"lse_available": 0} to USI_WM_BN_BM_22
Who can verify is it ok to disable lse?

Who can verify is it ok to disable lse?

Ask your HW experts :-)
Is a 32k clock is provided in the board ?
Are OSC32 pins connected ?

ARM Internal Ref: MBOTRIAGE-87

According to MCB USI_WM_BN_BM_22 schematics OSC32_IN pin is not connected so I think then "lse_available": 0 is ok. Right?

@ashok-rao Is this resolved, or any action still to be done?

@0xc0170 : Resolved by PR #7446 . Thank you. Closing the issue now.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bulislaw picture bulislaw  路  3Comments

0xc0170 picture 0xc0170  路  3Comments

1domen1 picture 1domen1  路  3Comments

chrissnow picture chrissnow  路  4Comments

DuyTrandeLion picture DuyTrandeLion  路  3Comments