ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
35619
Romario (18.07.2005 20:43, просмотров: 662)
мб уже было? но как автоматом в ADS сделать чексум векторов делал эту штуку через филипсовскую утилитку - там кнопочка есть, но вроде это как не наш метод поэтому озадачился сделать это автоматом. подсказали что возьми кулькулятор и посчитай но (ADS 1.2:)
        LDR     PC, Reset_Addr
        LDR     PC, Undefined_Addr
        LDR     PC, SWI_Addr
        LDR     PC, Prefetch_Addr
        LDR     PC, Abort_Addr
        NOP                             ; Reserved vector
        LDR     PC, [PC,#-0xFF0]
        LDR     PC, FIQ_Addr

        IMPORT  Reset_Handler           ; In Crt0.s
        
Reset_Addr      DCD     Reset_Handler
Undefined_Addr  DCD     Undefined_Handler
SWI_Addr        DCD     SWI_Handler
Prefetch_Addr   DCD     Prefetch_Handler
Abort_Addr      DCD     Abort_Handler
FIQ_Addr        DCD     FIQ_Handler

; ************************
; Exception Handlers
; ************************

; The following dummy handlers do not do anything useful in this example.
; They are set up here for completeness.

Undefined_Handler
        B       Undefined_Handler
SWI_Handler
        B       SWI_Handler     
Prefetch_Handler
        B       Prefetch_Handler
Abort_Handler
        B       Abort_Handler

FIQ_Handler
        B       FIQ_Handler

в таком варианте конечно можно 1 раз вычислить и забыть, но, если FIQ_ISR разместить сразу на векторе FIQ то при написании FIQ ее размер будет менятся в процессе написания и табличка из DCD будет смещаться ну или надо просто зарезервировать размер FIQ и табличку из DCD на фиксированный адрес с запасом. Опять не нравится, хочу чтобы было автоматом, наверное можно это как то сделать в scattered файле?