реклама на сайте
подробности

 
 
> LPC2148+LPCUSB, помогите разобраться
viael
сообщение Feb 29 2008, 06:52
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979



Пытаюсь разобраться с USB стеком http://sourceforge.net/projects/lpcusb.
Компилирую WinARM+KEIL(IDE).При компиляции с родными (из проекта)стартапом и скриптом линкера работает нормально, но есть непонятные моменты:
В стартапе таблица векторов задана так:

Код
_vectors:       ldr     PC, Reset_Addr        
                ldr     PC, Undef_Addr
                ldr     PC, SWI_Addr
                ldr     PC, PAbt_Addr
                ldr     PC, DAbt_Addr
                nop                            
                ldr     PC, [PC,#-0xFF0]    
                ldr     PC, FIQ_Addr

Reset_Addr:     .word   Reset_Handler        /* defined in this module below  */
Undef_Addr:     .word   UNDEF_Routine        /* defined in main.c  */
SWI_Addr:       .word   SWI_Routine            /* defined in main.c  */
PAbt_Addr:      .word   UNDEF_Routine        /* defined in main.c  */
DAbt_Addr:      .word   UNDEF_Routine        /* defined in main.c  */
IRQ_Addr:       .word   IRQ_Routine            /* defined in main.c  */
FIQ_Addr:       .word   FIQ_Routine            /* defined in main.c  */
                      .word   0 //здесь чето непонятно???


обработчики заданы в майне:

Код
void IRQ_Routine (void)   __attribute__ ((interrupt("IRQ")));
void FIQ_Routine (void)   __attribute__ ((interrupt("FIQ")));
void SWI_Routine (void)   __attribute__ ((interrupt("SWI")));
void UNDEF_Routine (void) __attribute__ ((interrupt("UNDEF")));


При замене стартапа на(стандартный из комплекта (KEIL):
Код
Vectors:        LDR     PC, Reset_Addr        
                LDR     PC, Undef_Addr
                LDR     PC, SWI_Addr
                LDR     PC, PAbt_Addr
                LDR     PC, DAbt_Addr
                NOP                            /* Reserved Vector */
#               LDR     PC, IRQ_Addr
                LDR     PC, [PC, #-0x0FF0]     /* Vector from VicVectAddr */
                LDR     PC, FIQ_Addr

Reset_Addr:     .word   Reset_Handler
Undef_Addr:     .word   Undef_Handler
SWI_Addr:       .word   SWI_Handler
PAbt_Addr:      .word   PAbt_Handler
DAbt_Addr:      .word   DAbt_Handler
                .word   0                      /* Reserved Address */
IRQ_Addr:       .word   IRQ_Handler
FIQ_Addr:       .word   FIQ_Handler

Undef_Handler:  B       Undef_Handler
SWI_Handler:    B       SWI_Handler
PAbt_Handler:   B       PAbt_Handler
DAbt_Handler:   B       DAbt_Handler
IRQ_Handler:    B       IRQ_Handler
FIQ_Handler:    B       FIQ_Handler


выпадает в DAbt_Addr. Почему так???
Архив с проектом прикрепляю.
Прикрепленные файлы
Прикрепленный файл  target.rar ( 221.89 килобайт ) Кол-во скачиваний: 32
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- viael   LPC2148+LPCUSB   Feb 29 2008, 06:52


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016