Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmsis5/rtx2: ST: execution never leaves SystemInit #3683

Closed
bulislaw opened this issue Feb 2, 2017 · 25 comments
Closed

cmsis5/rtx2: ST: execution never leaves SystemInit #3683

bulislaw opened this issue Feb 2, 2017 · 25 comments

Comments

@bulislaw
Copy link
Member

bulislaw commented Feb 2, 2017

Description


Bug

Target
ST platfoms (tested with NUCLEO F401RE and F411RE)

Toolchain:
GCC_ARM ARM

We're trying to finalize CMSIS5/RTX2 (https://github.com/ARMmbed/mbed-os/tree/feature_cmsis5) update in next month or two, but we're having issues with ST platforms. When executing tests (eg mbed test -n tests-mbedmicro-rtos-mbed-basic -m NUCLEO_F401RE -vv) I'm getting a timeout. I had a bit of troubles trying to debug the issue, but as far as i can tell the execution never leaves SystemInit, it's stuck in TIM5_IRQHandler in an infinite loop. While stepping through the code it seems the interrupt was happening while trying to access SysTick counter (HAL_GetTick), but I'm not 100% sure.

@0xc0170 Could you ping some ST people, maybe they could have a look into it?
CC: @sg- @c1728p9

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 2, 2017

cc @bcostm @adustm @LMESTM @jeromecoutant

@bcostm
Copy link
Contributor

bcostm commented Feb 3, 2017

Hi,
This test is ok on the master branch. I don't know if you can rebase your branch on top of master ?

mbedgt: test suite report:
+-----------------------+---------------+---------------------------------+--------+--------------------+-------------+
| target                | platform_name | test suite                      | result | elapsed_time (sec) | copy_method |
+-----------------------+---------------+---------------------------------+--------+--------------------+-------------+
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-basic | OK     | 22.23              | shell       |
+-----------------------+---------------+---------------------------------+--------+--------------------+-------------+
mbedgt: test suite results: 1 OK
mbedgt: test case report:
+-----------------------+---------------+---------------------------------+---------------------------------+--------+--------+--------+--------------------+
| target                | platform_name | test suite                      | test case                       | passed | failed | result | elapsed_time (sec) |
+-----------------------+---------------+---------------------------------+---------------------------------+--------+--------+--------+--------------------+
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-basic | tests-mbedmicro-rtos-mbed-basic | 1      | 0      | OK     | 22.23              |
+-----------------------+---------------+---------------------------------+---------------------------------+--------+--------+--------+--------------------+
mbedgt: test case results: 1 OK
mbedgt: completed in 26.92 sec

mbed-os version
65956d1 Merge pull request #3677 from c1728p9/armcc_linker_flags

@bulislaw
Copy link
Member Author

bulislaw commented Feb 3, 2017

I know it is ok on master and the feature branch is almost up to date with master anyway. But it seems to be broken (for all ST platforms I've tried) with the update to cmsis5/rtx2 and my debugging led me into bowels of the platform. It's the change we'll be landing soon on master and I'd like to have ST boards passing all the tests. Could you guys help us with debugging it please.

@bulislaw
Copy link
Member Author

ping

@bcostm
Copy link
Contributor

bcostm commented Feb 16, 2017

Hi,

I have installed the latest uVision V5.23 toolchain and generated a project using "mbed export" in order to start debugging.

But I have these 2 errors:

assembling irq_cm4f.s...
rtos\rtx2\TARGET_CORTEX_M\TARGET_RTOS_M4_M7\TOOLCHAIN_ARM\irq_cm4f.s(81): error: A1854E: Unknown opcode 'VSTMDBEQ', maybe wrong target CPU?
rtos\rtx2\TARGET_CORTEX_M\TARGET_RTOS_M4_M7\TOOLCHAIN_ARM\irq_cm4f.s(97): error: A1854E: Unknown opcode 'VLDMIAEQ', maybe wrong target CPU?

It's strange because when I compile with mbed test -vv -m NUCLEO_F401RE -t ARM --compile I don't have any error. Same with GCC_ARM build, no error.

Do you use a uvision project for your debug ?

@bulislaw
Copy link
Member Author

I don't generally use windows, but yes when I was trying to debug this issue I was using uVision 5.20 (ARMC 5.06). It seems that the flag is correctly set __FPU_PRESENT as this platform has FPU. I'm not in the office and don't have access to windows machine right now to recheck that, can uVision debugger use binary built externally by mbed compile --profile debug -m NUCLEO_F401RE -t ARM?

@bcostm
Copy link
Contributor

bcostm commented Feb 16, 2017

I don't know if this is feasible or not ? Anyway I have commented the 2 lines just to see if the rest was ok and I have now 4247 errors during linking...
But seems to be the same error:

*** Using Compiler 'V5.06 update 4 (build 422)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'mbed-os'
compiling main_blink_led.cpp...
linking...
.\BUILD\mbed-os.axf: Error: L6366E: analogin.o attributes are not compatible with the provided attributes .
Object analogin.o contains Build Attributes that are incompatible with the provided attributes.
    Tag_FP_arch = VFPv4 instructions were permitted, but only citing registers D0-D15 (=6)
    Tag_ABI_HardFP_use = This code should execute on the single-precision variant derived from Tag_FP_arch (=1)
    Tag_FP_HP_extension = Use of the optional half-precision extension to VFPv3/Advanced SIMDv1 was permitted (=1)
.\BUILD\mbed-os.axf: Error: L6367E: analogin.o(.rev16_text) attributes are not compatible with the provided attributes .
Object analogin.o contains Build Attributes that are incompatible with the provided attributes.
    Tag_FP_arch = VFPv4 instructions were permitted, but only citing registers D0-D15 (=6)
    Tag_ABI_HardFP_use = This code should execute on the single-precision variant derived from Tag_FP_arch (=1)
    Tag_FP_HP_extension = Use of the optional half-precision extension to VFPv3/Advanced SIMDv1 was permitted (=1)
.\BUILD\mbed-os.axf: Error: L6367E: analogin.o(.revsh_text) attributes are not compatible with the provided attributes .
Object analogin.o contains Build Attributes that are incompatible with the provided attributes.
    Tag_FP_arch = VFPv4 instructions were permitted, but only citing registers D0-D15 (=6)
    Tag_ABI_HardFP_use = This code should execute on the single-precision variant derived from Tag_FP_arch (=1)
    Tag_FP_HP_extension = Use of the optional half-precision extension to VFPv3/Advanced SIMDv1 was permitted (=1)
.\BUILD\mbed-os.axf: Error: L6367E: analogin.o(.rrx_text) attributes are not compatible with the provided attributes .
Object analogin.o contains Build Attributes that are incompatible with the provided attributes.
    Tag_FP_arch = VFPv4 instructions were permitted, but only citing registers D0-D15 (=6)
    Tag_ABI_HardFP_use = This code should execute on the single-precision variant derived from Tag_FP_arch (=1)
    Tag_FP_HP_extension = Use of the optional half-precision extension to VFPv3/Advanced SIMDv1 was permitted (=1)

...

@bulislaw
Copy link
Member Author

Do you have similar issues on master?

@bcostm
Copy link
Contributor

bcostm commented Feb 16, 2017

Yes same error on master.

@bulislaw
Copy link
Member Author

OK, it explains a lot I did a rebase on monday. You mind creating a bug report for master?

@bulislaw
Copy link
Member Author

@bcostm I manage to reproduce the issue with current master and only CMSIS changed, I prepared branch for F401 https://github.com/bulislaw/mbed-os/tree/st401_update_cmsis_no_rtx
Tested with tests-mbedmicro-rtos-mbed-threads (which hangs)

@bcostm
Copy link
Contributor

bcostm commented Feb 21, 2017

I have now a uvision project that compiles thanks to the fix Martin suggested.

I have tested your branch st401_update_cmsis_no_rtx with different test codes:

  • First, with a blinky example + uVision ->OK. Note that using this simple code on the feature_cmsis5 branch doesn't work for me (hang).
  • Then with tests-mbedmicro-rtos-mbed-basic code (remove Greentea code) + uVision -> OK
  • Then with the tests-mbedmicro-rtos-mbed-threads code + uVision ->OK
  • Launch thread test with mbed test
+-------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+
| target            | platform_name | test suite                        | test case                            | passed | failed | result | elapsed_time (sec) |
+-------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads             | 1      | 0      | OK     | 0.05               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with child  | 1      | 0      | OK     | 0.04               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with murder | 1      | 0      | OK     | 0.08               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with wait   | 1      | 0      | OK     | 0.16               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with yield  | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads               | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with child    | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with murder   | 1      | 0      | OK     | 0.07               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with wait     | 1      | 0      | OK     | 1.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with yield    | 1      | 0      | OK     | 0.08               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread                | 1      | 0      | OK     | 0.03               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with child     | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with murder    | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with wait      | 1      | 0      | OK     | 0.19               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with yield     | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing thread self terminate        | 1      | 0      | OK     | 0.09               |
+-------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+
  • Then launch all rtos tests:
+-------------------+---------------+-------------------------------------+--------------------------------------+--------+--------+--------+--------------------+
| target            | platform_name | test suite                          | test case                            | passed | failed | result | elapsed_time (sec) |
+-------------------+---------------+-------------------------------------+--------------------------------------+--------+--------+--------+--------------------+
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-basic     | tests-mbedmicro-rtos-mbed-basic      | 0      | 1      | ERROR  | 69.44              |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-isr       | tests-mbedmicro-rtos-mbed-isr        | 1      | 0      | OK     | 16.35              |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-mail      | tests-mbedmicro-rtos-mbed-mail       | 1      | 0      | OK     | 12.89              |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-malloc    | tests-mbedmicro-rtos-mbed-malloc     | 1      | 0      | OK     | 26.32              |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-mutex     | tests-mbedmicro-rtos-mbed-mutex      | 1      | 0      | OK     | 21.47              |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-queue     | tests-mbedmicro-rtos-mbed-queue      | 1      | 0      | OK     | 12.94              |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-semaphore | tests-mbedmicro-rtos-mbed-semaphore  | 1      | 0      | OK     | 18.68              |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-signals   | tests-mbedmicro-rtos-mbed-signals    | 1      | 0      | OK     | 16.32              |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing parallel threads             | 1      | 0      | OK     | 0.01               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing parallel threads with child  | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing parallel threads with murder | 1      | 0      | OK     | 0.08               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing parallel threads with wait   | 1      | 0      | OK     | 0.16               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing parallel threads with yield  | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing serial threads               | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing serial threads with child    | 1      | 0      | OK     | 0.07               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing serial threads with murder   | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing serial threads with wait     | 1      | 0      | OK     | 1.07               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing serial threads with yield    | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing single thread                | 1      | 0      | OK     | 0.05               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing single thread with child     | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing single thread with murder    | 1      | 0      | OK     | 0.07               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing single thread with wait      | 1      | 0      | OK     | 0.16               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing single thread with yield     | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | Testing thread self terminate        | 1      | 0      | OK     | 0.05               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-timer     | tests-mbedmicro-rtos-mbed-timer      | 1      | 0      | OK     | 22.32              |
+-------------------+---------------+-------------------------------------+--------------------------------------+--------+--------+--------+--------------------+

The basic test hangs after "tick 10" print and there is a timeout (?)

[1487690332.79][SERI][TXD] {{__sync;753f1f3b-c062-437d-a5f8-8c3d4eca43e9}}
[1487690333.68][CONN][RXD] tick 2
[1487690334.68][CONN][RXD] tick 3
[1487690335.68][CONN][RXD] tick 4
[1487690336.68][CONN][RXD] tick 5
[1487690337.67][CONN][RXD] tick 6
[1487690338.68][CONN][RXD] tick 7
[1487690339.67][CONN][RXD] tick 8
[1487690340.67][CONN][RXD] tick 9
[1487690341.68][CONN][RXD] tick 10
[1487690390.38][HTST][INF] test suite run finished after 60.93 sec...
[1487690390.39][CONN][INF] received special even '__host_test_finished' value='True', finishing
[1487690390.41][HTST][INF] CONN exited with code: 0
[1487690390.41][HTST][INF] No events in queue
[1487690390.41][HTST][INF] stopped consuming events
[1487690390.41][HTST][INF] host test result(): None
[1487690390.41][HTST][WRN] missing __exit event from DUT
[1487690390.41][HTST][WRN] missing __exit_event_queue event from host test
[1487690390.41][HTST][ERR] missing __exit_event_queue event from host test and no result from host test, timeout...
[1487690390.41][HTST][INF] calling blocking teardown()
[1487690390.41][HTST][INF] teardown() finished
[1487690390.41][HTST][INF] {{result;timeout}}

Are you sure it hangs for you ? or maybe I misinterpreted what you wrote and the st401_update_cmsis_no_rtx branch is ok ?

Do you confirm my results ?

@bulislaw
Copy link
Member Author

I retested the st401_update_cmsis_no_rtx branch for both ARM and GCC (using tests-mbedmicro-rtos-mbed-threads) and it works with ARM and hangs with GCC. But never mind that really, if you have way of debugging the feature_cmsis5 branch now, using Martins workaround, it's better to work with that as that what we care about anyway.

@bcostm
Copy link
Contributor

bcostm commented Feb 22, 2017

Yes I tried also yesterday to debug the feature_cmsis5 branch with a simple blinky program but I didn't find anything...

@bcostm
Copy link
Contributor

bcostm commented Feb 22, 2017

Humm... I have retested this morning the feature_cmsis5 branch (65606d7 Merge branch 'master' into feature_cmsis5) and the rtos-threads test is ok for both ARM and GCC:

+-------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+
| target            | platform_name | test suite                        | test case                            | passed | failed | result | elapsed_time (sec) |
+-------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads             | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with child  | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with murder | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with wait   | 1      | 0      | OK     | 0.15               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with yield  | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads               | 1      | 0      | OK     | 0.04               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with child    | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with murder   | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with wait     | 1      | 0      | OK     | 1.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with yield    | 1      | 0      | OK     | 0.07               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread                | 1      | 0      | OK     | 0.05               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with child     | 1      | 0      | OK     | 0.07               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with murder    | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with wait      | 1      | 0      | OK     | 0.16               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with yield     | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing thread self terminate        | 1      | 0      | OK     | 0.06               |
+-------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+
+-----------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+
| target                | platform_name | test suite                        | test case                            | passed | failed | result | elapsed_time (sec) |
+-----------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads             | 1      | 0      | OK     | 0.04               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with child  | 1      | 0      | OK     | 0.07               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with murder | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with wait   | 1      | 0      | OK     | 0.16               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing parallel threads with yield  | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads               | 1      | 0      | OK     | 0.05               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with child    | 1      | 0      | OK     | 0.07               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with murder   | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with wait     | 1      | 0      | OK     | 1.06               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing serial threads with yield    | 1      | 0      | OK     | 0.08               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread                | 1      | 0      | OK     | 0.04               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with child     | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with murder    | 1      | 0      | OK     | 0.07               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with wait      | 1      | 0      | OK     | 0.15               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing single thread with yield     | 1      | 0      | OK     | 0.06               |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads | Testing thread self terminate        | 1      | 0      | OK     | 0.06               |
+-----------------------+---------------+-----------------------------------+--------------------------------------+--------+--------+--------+--------------------+

But all other tests are fail:

+-------------------+---------------+-------------------------------------+---------+--------------------+-------------+
| target            | platform_name | test suite                          | result  | elapsed_time (sec) | copy_method |
+-------------------+---------------+-------------------------------------+---------+--------------------+-------------+
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-basic     | TIMEOUT | 69.88              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-isr       | TIMEOUT | 69.99              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-malloc    | TIMEOUT | 69.9               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-mutex     | TIMEOUT | 69.86              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-queue     | TIMEOUT | 69.93              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-semaphore | TIMEOUT | 69.83              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-signals   | TIMEOUT | 69.85              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads   | OK      | 17.77              | shell       |
+-------------------+---------------+-------------------------------------+---------+--------------------+-------------+

@bcostm
Copy link
Contributor

bcostm commented Feb 22, 2017

I have generated a uVision project from the feature_cmsis5 branch. I have these warnings for non-declared functions:
rtos\mbed_boot.c(296): warning: #223-D: function "__rt_lib_init" declared implicitly
rtos\mbed_boot.c(310): warning: #223-D: function "__user_setup_stackheap" declared implicitly
rtos\mbed_boot.c(313): warning: #223-D: function "_platform_post_stackheap_init" declared implicitly
rtos\mbed_rtx_handlers.c(25): warning: #223-D: function "rtos_idle_loop" declared implicitly
In master branch, they are defined in RTX_CM_lib.h file but not found in feature_cmsis5 branch.

Other thing: When I compile the rtos-basic test main.cpp, I have an error due to the DEFAULT_STACK_SIZE not declared. In the master branch this is defined in the rtos/rtx/target_cortex_m/cmsis_os.h file. But I didn't find it in the feature_cmsis5 branch ?

@0xc0170
Copy link
Contributor

0xc0170 commented Feb 22, 2017

@bcostm we will fix those warnings, I was planning to send a patch

@bulislaw
Copy link
Member Author

Other thing: When I compile the rtos-basic test main.cpp, I have an error due to the DEFAULT_STACK_SIZE not declared. In the master branch this is defined in the rtos/rtx/target_cortex_m/cmsis_os.h file. But I didn't find it in the feature_cmsis5 branch ?

The DEFAULT_STACK_SIZE was removed, I have fix for the tests, I'll merge it soon.

As for the test results, I'm getting timeouts for all tests for feature_cmsis5 65606d, Martin is checking for his setup. Could you have a look at the timeouting tests in the meantime.

@bulislaw
Copy link
Member Author

@0xc0170 any news?

@bulislaw
Copy link
Member Author

@bcostm I've got some results, that looks similar to yours. Could you please have a look at the failures. I think the issue with building tests is resolved now.

ARM:

+-------------------+---------------+------------------------------------------------------------------------------+---------+--------------------+-------------+
| target            | platform_name | test suite                                                                   | result  | elapsed_time (sec) | copy_method |
+-------------------+---------------+------------------------------------------------------------------------------+---------+--------------------+-------------+
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-basic_test                        | OK      | 9.85               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-basic_test_default                | OK      | 9.94               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_async_validate               | OK      | 12.06              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_control_async                | OK      | 18.09              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_control_repeat               | OK      | 11.89              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_selection                    | OK      | 9.91               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_setup_failure                | OK      | 11.34              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_teardown_failure             | OK      | 10.89              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-control_type                      | OK      | 11.03              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-minimal_async_scheduler           | OK      | 10.65              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-minimal_scheduler                 | TIMEOUT | 68.46              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-test_assertion_failure_test_setup | OK      | 9.89               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-test_setup_case_selection_failure | OK      | 10.87              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-test_setup_failure                | OK      | 10.2               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | rtos-rtx2-target_cortex_m-tests-memory-heap_and_stack                        | TIMEOUT | 67.85              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-events-queue                                                           | OK      | 17.46              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-integration-basic                                                      | TIMEOUT | 67.72              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-c_strings                                                 | OK      | 11.81              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-dev_null                                                  | TIMEOUT | 68.0               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-echo                                                      | OK      | 28.7               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-generic_tests                                             | OK      | 10.13              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-race_test                                                 | OK      | 11.22              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-rtc                                                       | OK      | 20.61              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-stl_features                                              | OK      | 11.69              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-ticker                                                    | OK      | 43.06              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-timeout                                                   | OK      | 20.53              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_drivers-wait_us                                                   | OK      | 20.87              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_functional-callback                                               | OK      | 11.72              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_functional-callback_big                                           | OK      | 11.48              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_functional-callback_small                                         | OK      | 12.22              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbed_functional-functionpointer                                        | OK      | 9.95               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-attributes                                              | OK      | 12.46              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-call_before_main                                        | TIMEOUT | 68.04              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-cpp                                                     | TIMEOUT | 68.84              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-div                                                     | TIMEOUT | 68.01              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-static_assert                                           | OK      | 9.49               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-basic                                              | TIMEOUT | 67.78              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-isr                                                | TIMEOUT | 68.01              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-malloc                                             | TIMEOUT | 69.95              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-mutex                                              | TIMEOUT | 67.82              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-queue                                              | TIMEOUT | 67.5               | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-semaphore                                          | TIMEOUT | 68.12              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-signals                                            | TIMEOUT | 67.78              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads                                            | OK      | 15.29              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-mbedtls-selftest                                                       | OK      | 14.13              | shell       |
| NUCLEO_F401RE-ARM | NUCLEO_F401RE | tests-netsocket-ip_parsing                                                   | OK      | 11.47              | shell       |
+-------------------+---------------+------------------------------------------------------------------------------+---------+--------------------+-------------+

GCC(v6):

+-----------------------+---------------+------------------------------------------------------------------------------+---------+--------------------+-------------+
| target                | platform_name | test suite                                                                   | result  | elapsed_time (sec) | copy_method |
+-----------------------+---------------+------------------------------------------------------------------------------+---------+--------------------+-------------+
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-basic_test                        | OK      | 10.02              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-basic_test_default                | OK      | 9.98               | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_async_validate               | OK      | 12.12              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_control_async                | OK      | 18.58              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_control_repeat               | OK      | 12.04              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_selection                    | OK      | 10.0               | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_setup_failure                | OK      | 10.48              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-case_teardown_failure             | OK      | 10.62              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-control_type                      | OK      | 11.01              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-minimal_async_scheduler           | OK      | 11.15              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-minimal_scheduler                 | TIMEOUT | 68.05              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-test_assertion_failure_test_setup | OK      | 10.27              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-test_setup_case_selection_failure | OK      | 9.89               | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | features-frameworks-utest-tests-unit_tests-test_setup_failure                | OK      | 10.09              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | rtos-rtx2-target_cortex_m-tests-memory-heap_and_stack                        | TIMEOUT | 68.24              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-events-queue                                                           | OK      | 17.66              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-integration-basic                                                      | TIMEOUT | 67.91              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-c_strings                                                 | OK      | 12.06              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-dev_null                                                  | TIMEOUT | 69.03              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-echo                                                      | OK      | 24.77              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-generic_tests                                             | OK      | 10.5               | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-race_test                                                 | OK      | 11.14              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-rtc                                                       | OK      | 20.8               | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-stl_features                                              | OK      | 11.93              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-ticker                                                    | OK      | 43.14              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-timeout                                                   | OK      | 20.73              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_drivers-wait_us                                                   | OK      | 20.86              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_functional-callback                                               | OK      | 12.23              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_functional-callback_big                                           | OK      | 11.58              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_functional-callback_small                                         | OK      | 11.65              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbed_functional-functionpointer                                        | OK      | 10.09              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-attributes                                              | OK      | 11.68              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-call_before_main                                        | TIMEOUT | 67.97              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-cpp                                                     | TIMEOUT | 68.22              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-div                                                     | TIMEOUT | 68.08              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-mbed-static_assert                                           | OK      | 9.56               | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-basic                                              | TIMEOUT | 67.86              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-isr                                                | TIMEOUT | 68.58              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-malloc                                             | TIMEOUT | 68.54              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-mutex                                              | TIMEOUT | 68.66              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-queue                                              | TIMEOUT | 68.46              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-semaphore                                          | TIMEOUT | 68.36              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-signals                                            | TIMEOUT | 68.41              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedmicro-rtos-mbed-threads                                            | OK      | 15.76              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-mbedtls-selftest                                                       | OK      | 15.52              | shell       |
| NUCLEO_F401RE-GCC_ARM | NUCLEO_F401RE | tests-netsocket-ip_parsing                                                   | OK      | 12.37              | shell       |
+-----------------------+---------------+------------------------------------------------------------------------------+---------+--------------------+-------------+

@bcostm
Copy link
Contributor

bcostm commented Feb 27, 2017

OK no more error due to the DEFAULT_STACK_SIZE, I can compile the project but I still have these warnings:

rtos\mbed_boot.c(294): warning:  #223-D: function "__rt_lib_init" declared implicitly
rtos\mbed_boot.c(308): warning:  #223-D: function "__user_setup_stackheap" declared implicitly
rtos\mbed_boot.c(311): warning:  #223-D: function "_platform_post_stackheap_init" declared implicitly
rtos\mbed_rtx_handlers.c(25): warning:  #223-D: function "rtos_idle_loop" declared implicitly

@bcostm
Copy link
Contributor

bcostm commented Mar 2, 2017

We've found something that seems to fix the issue (thanks @jamike) but we need first to launch a full non-regression tests on all our platforms to see if this doesn't break anything else... I'll keep you updated.

@bulislaw
Copy link
Member Author

bulislaw commented Mar 8, 2017

@bcostm any news?

@bcostm
Copy link
Contributor

bcostm commented Mar 9, 2017

Hi,
Can you check with this PR ?

@bulislaw
Copy link
Member Author

That's fixed now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants