OS_Exception() not found in vector table

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • OS_Exception() not found in vector table

    Hello,

    I am using embOS CortexM GNU Trial V388f with Olimex STM32-P107 and Eclipse/Ubuntu 12.4. The CPU is an STM32F107 and the start project i use is STM32F103_STM32_SK.

    The demo project is running and the LEDs are blinking. So, everything is fine and i started reading the UM01033 embOS CortexM GNU document that comes with the embOS package to get a deeper insight in embOS.

    The document says in Chapter 6.8.1 OS_Exception ...:
    "Ensure that the address of OS_Exception() is inserted in the vector table at the cor-
    rect position. The vector tables which come with embOS are already setup and
    should be used and modified for the application."

    But, as i can see, all Interrupt Handlers in startup_stm32f10x_md.S point to the Default_Handler. Should not at least one single Handler point to OS_Exception()?

    I have to say, that i am very new to ARM Cortex M controllers (and 32 bit controllers at all), so it might be a non embOS related question.

    Thanks, potter
  • Hello,

    OS_Exception() is the old name for the embOS handler, we use now the CMSIS name PendSV_Handler() instead.
    The documentation is not up to date, thanks for the hint, we will correct it.

    The first 16 vectors are the same for all Cortex M3.
    Please find PendSV_Handler() below:

    Extraction from startup_stm32f10x_md.S:

    C Source Code

    1. __Vectors:
    2. .word __stack_end__
    3. .word Reset_Handler
    4. .word NMI_Handler
    5. .word HardFault_Handler
    6. .word MemManage_Handler
    7. .word BusFault_Handler
    8. .word UsageFault_Handler
    9. .word 0
    10. .word 0
    11. .word 0
    12. .word 0
    13. .word SVC_Handler
    14. .word DebugMon_Handler
    15. .word 0
    16. .word PendSV_Handler
    17. .word SysTick_Handler
    18. .weak PendSV_Handler
    19. .thumb_set PendSV_Handler,Default_Handler
    Display All


    The handler function itself is declared as weak which means that the Default_Handler is used when no other PendSV_Handler function exists.
    The embOS PendSV_Handler() is part of the embOS library and the linker will use that one.

    Best regards,
    Til
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.