Error with Keil RTX5 tutorial

Hi,

I'm trying to learn the workings of/with the Keil RTX5, using the supplied tutorial.

During the first steps I do encounter a compiling error in the function "uint32_t os_Error (uint32_t code, void *object_id)". All the error codes os_ErrorStackUnderflow, os_ErrorISRQueueOverflow, os_ErrorTimerQueueOverflow, case os_ErrorClibSpace and os_ErrorClibMutex are unknown.

What I'm doing wrong?

Any help appreciated, Hans

Parents Reply Children
  • Thanks a lot for your answer. I installed everything (Keil MDK + Tutorial) on a newly created virtual Win10 machine.
    It worked much better, but I still get an error:

    The include chain “rtx_kernel.c -> rtx_lib.h -> rtx_core_c.h -> rtx_core_cm.h” percolates the following problem in rtx_core_cm.h, lines 464 – 465:

     #if defined(__CC_ARM)
    static __asm    uint8_t atomic_wr8 (uint8_t *mem, uint8_t val) {

    The symblol ‘__asm’ is not recognized, the compiler says “error: expected identifier or ‘(‘”.

    Kind regards, (too) Hans

    PS: the reason behind this all is that I have to start a new Keil MDK project and I’m trying to use and get acquainted with RTX5. The old project which I inherited uses adapted code from an evaluation board.

  • I don't know exactly where this comes from, but it seems that there is a mismatch of the compiler versions. When you get an error message for this line, it means that the definition __CC_ARM is set. This is usually only set when the Arm compiler version 5 is selected. If this is the case, you should not get any errors. I assume, that you have selected the Arm compiler version 6 but maybe __CC_ARM is manually defined somewhere in your project. If you can't fix this issue, please tell me which versions of MDK, CMSIS and which Arm compiler you use (hint: MDK 5.35 was released yesterday, CMSIS 5.8.0 two days before). You could also create a support ticket with your project attached to it.

    Hans


  • 1) Under Project -> Options For Target -> Target tab, on the top-right, I have "Use Default Compiler version 6"

    2) In my project, When I open this file and go to line 464:
        C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.8.0\CMSIS\RTOS2\RTX\Source\rtx_core_cm.h

    #if defined(__CC_ARM)
    static __asm    uint8_t atomic_wr8 (uint8_t *mem, uint8_t val) {

    The static line is grayed out - as it should, because I am using compiler 6.

    My setup:
    µVision V5.34.0.0
    Copyright (C) 2021 ARM Ltd and ARM Germany GmbH. All rights reserved.
    Toolchain:        MDK-ARM Professional  Version: 5.34.0.0
    Toolchain Path:    C:\Keil_v5\ARM\ARMCLANG\Bin
    C Compiler:         ArmClang.exe        V6.16
    Assembler:          Armasm.exe        V6.16
    Linker/Locator:     ArmLink.exe        V6.16
    Library Manager:    ArmAr.exe        V6.16
    Hex Converter:      FromElf.exe        V6.16