ADuC 70xx interrupts with Keil software

The Keil software shipped free with the ADuC7026 dev kit is able to program interrupts using 'void IRQ_Handler() __irq' syntax.

Newer versions of software will not accept this syntax. I am not a very experienced programmer, but more experienced colleagues of mine have also struggled with this without success, and since it is free software there is no recourse to Keil technical support. Has anyone else had this problem?

  • 0
    •  Analog Employees 
    on Apr 2, 2020 2:13 PM 7 months ago

    Hi Nic,

  • 0
    •  Analog Employees 
    on Apr 2, 2020 2:13 PM 7 months ago in reply to MikeL

    Hi Nic,

  • 0
    •  Analog Employees 
    on Apr 2, 2020 2:26 PM 7 months ago in reply to MikeL

    Hi Nic,

    The most recent revisions of Keil uVision like version 5, require CMSIS packs.

    The exception vectors are defined in a startup file and yes the syntax does look to have changed in newer revision but - best check with a keil source.

    Vectors: changed to __Vectors

    This is from a Cortex-M3 startup file supported on uVision5

    __Vectors       DCD     __initial_sp               ; Top of Stack
                    DCD     Reset_Handler              ; Reset Handler
                    DCD     NMI_Handler                ; The NMI handler       
                    DCD     HardFault_Handler              ; The hard fault handler
                    DCD     MemManage_Handler          ; The MPU fault handler 
                    DCD     BusFault_Handler           ; The bus fault handler 
                    DCD     UsageFault_Handler         ; The usage fault handler
                    
                    DCD     SVC_Handler                ; SVCall handler        
                    DCD     DebugMon_Handler           ; Debug monitor handler 
                    DCD     0                          ; Reserved              
                    DCD     PendSV_Handler             ; The PendSV handler    
                    DCD     SysTick_Handler            ; The SysTick handler   
                    ; External Interrupts
             DCD     WakeUp_Int_Handler        ; Wake Up Timer              [ 0]
             DCD     Ext_Int0_Handler          ; External Interrupt 0       [ 1]
             DCD     Ext_Int1_Handler          ; External Interrupt 1       [ 2]
             DCD     ADC0_Int_Handler          ; ADC0 Interrupt             [13]

    Your C interrupt handler functions look like this then:

    void ADC0_Int_Handler()
    {
     
    }

    The evaluation software for the ADuC7026 was created about 14 years ago for version 3 of uVision.

    At this FTP link, there is an installer that if you download and run, you will get the option to install uVision3 - a version that will work with the example projects for the ADuC7026.

    ftp://ftp.analog.com/pub/microconverter/ADuC7XXXV0.2/

    I think this is your fastest path to getting a working example.

    regards,

    MikeL