Цитата(owl @ May 5 2009, 17:41)

Провозился пол дня с казавшейся по началу ерундовой проблемой, отменить CAN посылку, при отсутствии ACK сигнала (нет slave на шине).
Понял, что сделать это не могу!!! (Культурными средствами по крайней мере

)
Поиск в инете выдал следующее:
http://www.at91.com/samphpbb/viewtopic.php?f=15&t=5043http://support.atmel.no/bin/customer?=&...ntry&id=254Блин, очередной облом с процом....достало....
Как решили проблему? У меня при отсутствии ACK сигнала проц продолжает посылать пакет при этом входит в swi прерывание. Подумал все просто - сейчас сброшу бит CANEN в прерывании, выйду из него и буду ставить его по таймеру, ожидая подключения еще одного устройства к шине. Но не так все просто, проц далее начинает входить в Undefined_Addr, при этом адрес возврата 0x4. Адрес возврата для swi - 0x00108A7C. Использую библиотеки IARа. Там команды SWI 0x123456!!!!!!!!
Доктор я буду жить?
__iar_sh_stdout_close:
00108A10 E59F1098 LDR R1, [PC, #+152] ; [.text_6 (0x108AB0)] =__iar_sh_stdout_handle (0x202050)
00108A14 E92D5000 STMDB SP!, {R12,LR}
00108A18 E5910000 LDR R0, [R1, #+0]
00108A1C E3500000 CMP R0, #0x0
00108A20 0A000003 BEQ 0x108A34
00108A24 E3A00002 MOV R0, #0x2
00108A28 EF123456 SWI 0x123456
00108A2C E3A00000 MOV R0, #0x0
00108A30 E5810000 STR R0, [R1, #+0]
00108A34 E8BD4001 LDMIA SP!, {R0,LR}
00108A38 E12FFF1E BX LR
__iar_sh_stdout:
00108A3C E92D4010 STMDB SP!, {R4,LR}
00108A40 E59F4068 LDR R4, [PC, #+104] ; [.text_6 (0x108AB0)] =__iar_sh_stdout_handle (0x202050)
00108A44 E24DD010 SUB SP, SP, #0x10
00108A48 E5940000 LDR R0, [R4, #+0]
00108A4C E1A03001 MOV R3, R1
00108A50 E3500000 CMP R0, #0x0
00108A54 1A000009 BNE 0x108A80
00108A58 E28F104C ADD R1, PC, #0x4C ; 0x108AAC
00108A5C E58D1000 STR R1, [SP, #+0]
00108A60 E3A01004 MOV R1, #0x4
00108A64 E58D1004 STR R1, [SP, #+4]
00108A68 E3A01003 MOV R1, #0x3
00108A6C E58D1008 STR R1, [SP, #+8]
00108A70 E1A0100D MOV R1, SP
00108A74 E3A00001 MOV R0, #0x1
00108A78 EF123456 SWI 0x123456
00108A7C E5840000 STR R0, [R4, #+0]
00108A80 E5941000 LDR R1, [R4, #+0]
00108A84 E58D3004 STR R3, [SP, #+4]
00108A88 E58D1000 STR R1, [SP, #+0]
00108A8C E58D2008 STR R2, [SP, #+8]
00108A90 E1A0100D MOV R1, SP
Посмотрел я на свой предыдущий пост внимательно и закомментировал все отладочные подпрограммы аля TRACE... и все встало на свои места, больше никаких левых прерываний. УРА!!!