НАШЕЛ КОСЯК!!!!!!!!!!!!! фуф...ну рассказываю по порядку.
Среда ADS1.2
Во первых, я немного слукавил, ибо ISR у меня называется не DbguUart_Irq, а GpsUart_Irq. Это Важно!!!:)
Решил-ка я нажать ALT-F7 и глянуть дизасм.
Код
void GpsUart_Irq(void) {
..............
}
GpsUart_Irq
0x0000008c: e92d5070 pP-. STMFD r13!,{r4-r6,r12,r14}
0x00000090: e59f6340 @c.. LDR r6,0x3d8
0x00000094: e92d000f ..-. STMFD r13!,{r0-r3}
0x00000098: e5d60000 .... LDRB r0,[r6,#0]
0x0000009c: e24dd004 ..M. SUB r13,r13,#4
0x000000a0: e3500000 ..P. CMP r0,#0
0x000000a4: 13a0002a *... MOVNE r0,#0x2a
0x000000a8: 1bfffffe .... BLNE _putch0
0x000000ac: e3a00001 .... MOV r0,#1
0x000000b0: e5c60000 .... STRB r0,[r6,#0]
0x000000b4: e3a05000 .P.. MOV r5,#0
0x000000b8: e5154dec .M.. LDR r4,[r5,#-0xdec]
0x000000bc: e3a0002e .... MOV r0,#0x2e
0x000000c0: ebfffffe .... BL _putch0
0x000000c4: e3140001 .... TST r4,#1
0x000000c8: 0a000002 .... BEQ {pc} + 0x10; 0xd8
0x000000cc: e3a00072 r... MOV r0,#0x72
0x000000d0: ebfffffe .... BL _putch0
0x000000d4: e5150de8 .... LDR r0,[r5,#-0xde8]
0x000000d8: e3a00f80 .... MOV r0,#0x200
0x000000dc: e5050df4 .... STR r0,[r5,#-0xdf4]
0x000000e0: e5c65000 .P.. STRB r5,[r6,#0]
0x000000e4: e5055ed0 .^.. STR r5,[r5,#-0xed0]
0x000000e8: e28dd004 .... ADD r13,r13,#4
[b] 0x000000ec: e8bd001f .... LDMFD r13!,{r0-r4}
0x000000f0: e8bd5060 `P.. LDMFD r13!,{r5,r6,r12,r14}
0x000000f4: e25ef004 ..^. SUBS pc,r14,#4[/b]
добавляю я к объявлению ISR ключевое слово "__irq" и смотрю дизасм, тоже самое!
т.е. функция GpsUart_Irq компилируется
одинаково что с __irq что без! А именно
как с __irq!!!!....нихрена себе!
Изменил я название функции GpsUart_Irq на GpsUart_Irq2 и все
заработало!а теперь почему это происходит,
я не зря сказал внечале про назвние функций, дело в том, что я корректирую проект для другого девайса на базе SAM7 с проекта девайса на базе LPC. А там, у меня эта функция была как __irq.
Ну и чтобы не создавать проект заново и добавлять файлы, я просто создал новую директорию, перекопировал туда проект под LPC и уже потом начал изменять в соответствии с периферией SAM7.
И решил в новом проекте сделать в этой GpsUart_Irq сигнал в задачу.
Так вот, ADS этот видимо чтото не "почистил" в проекте и упорно компилит ее как __irq, видимо гдето
у него в проектных файлах это засело, не знаю. remove object code не помогает. все пути вроде исправил - пофиг.
Ну вот собственно и все, переименовал ее и все заработало!
Спасибо за участие!