This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Can keil optimize the interrupt routines?

When I set optimize(9,size) to a interrupt function, which should be optimize for "Common Block Subroutines", but it wasn't!
All interrupt funtions contain following duplicate blocks(see BOLD):


    PUSH    ACC
    PUSH    B
    PUSH    DPH
    PUSH    DPL
    PUSH    DPH1
    PUSH    DPL1
    PUSH    DPS
    MOV     DPS,#00H
    PUSH    PSW


    MOV     PSW,#010H ;Depend on using.
    LCALL   MyFunc


    POP     PSW
    POP     DPS
    POP     DPL1
    POP     DPH1
    POP     DPL
    POP     DPH
    POP     B
    POP     ACC
    RETI


Because I have so many interrupt functions. The optimize could save some code space, isn't it?

Parents
  • "keil's documents said it will improve the performance of may [many?] library functions"

    Actually, the manual says, "Using additional data pointers can improve the performance of the following library functions: memcpy, memmove, memcmp, strcpy, and strcmp." (my ephasis).

    So that's only five library functions, and no guarantee that it will actually help!

    You need to examine whether any improvement in these few library functions is actually worthwhile in your application, considering the impact of the extra saves on your interrupt performance - which seems, from your post, to be your major concern?

Reply
  • "keil's documents said it will improve the performance of may [many?] library functions"

    Actually, the manual says, "Using additional data pointers can improve the performance of the following library functions: memcpy, memmove, memcmp, strcpy, and strcmp." (my ephasis).

    So that's only five library functions, and no guarantee that it will actually help!

    You need to examine whether any improvement in these few library functions is actually worthwhile in your application, considering the impact of the extra saves on your interrupt performance - which seems, from your post, to be your major concern?

Children
No data