|
AT91SAM9263 Interrupt Vectors TABLE?, Не могу въехать в таблицу векторов прерываний. |
|
|
|
Sep 5 2007, 12:40
|
Местный
  
Группа: Свой
Сообщений: 215
Регистрация: 10-04-07
Пользователь №: 26 929

|
Здравствуйте товарищи !
У меня проблема - не могу въехать в принцип организации таблицы векторов прерываний данного процессора. То что Reset по адрессу 0x0000 0000 - это понятно. Источников прерываний - 32. Так как команды 4-х байтные, то адреса должны идти с шагом 4.
Т.е. что нибудь наподобии: 0x0000 0000 - Reset 0x0000 0004 - INT1 0x0000 0008 - INT2 ..... 0x0000 007C - INT31
Но вот вопрос, почему компилятор IAR выделяет под таблицу только 32 байта:
Disassembly of section .data: ... 0x00300000 ldr pc, [pc, #24] ; 0x00300020 0x00300004 andeq r0, r0, r0 0x00300008 ldr pc, [pc, #24] ; 0x00300028 ...
Или я не правильно понял организацию таблици векторов прерываний, или это IAR глючит? Вообще, если кто имел дело с этим процом, подскажите каким образом у него организована таблица векторов. В Datasheet на AT91SAM9263 её почемуто нет.
Или может есть только 8 векторов, в зависимости от приоритета прерывания. А обработчик должен сам искать источник прерывания?
Заранее спасибо.
|
|
|
|
|
 |
Ответов
|
Sep 11 2007, 09:27
|
Группа: Новичок
Сообщений: 3
Регистрация: 11-09-07
Пользователь №: 30 453

|
Цитата(DASM @ Sep 5 2007, 16:57)  ........ 0x18 IRQ 0x1C FIQ вот по адресу 0x18 и прыгаем на дальнейший обработчик ВСЕХ IRQ в системе. А там уж выяснем кто виноват и что делать DASM, скажите пожалйста, ... из это следует ли что если установить начальный адре для компиляции не 0x100000 а 0x102000, то прерывание должны попрежнему срабатывать ? ( я так понимаю что адрес вызываемой фунции в обработчике буде в этом случаи X+0x2000....но у меня не работает  ((....к примеру мигание сведодиодами работает а вот прирывание не срабатывают..просто "виснет" )
|
|
|
|
|
Sep 11 2007, 11:08
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(kizeev_e @ Sep 11 2007, 13:27)  DASM, скажите пожалйста, ... из это следует ли что если установить начальный адре для компиляции не 0x100000 а 0x102000, то прерывание должны попрежнему срабатывать ? ( я так понимаю что адрес вызываемой фунции в обработчике буде в этом случаи X+0x2000....но у меня не работает  ((....к примеру мигание сведодиодами работает а вот прирывание не срабатывают..просто "виснет" ) Процессор всегда вываливается в 0x18/0x1C. Куда он пойдет дальше всецело зависит от контроллера прерываний. Граждане, читайте документацию.
|
|
|
|
Сообщений в этой теме
Amper25 AT91SAM9263 Interrupt Vectors TABLE? Sep 5 2007, 12:40 DASM Неправильно поняли. У ARM7 "прерываний" ... Sep 5 2007, 12:57 Amper25 Я вообще то имел ввиду SAM9 а не SAM7.
А по пово... Sep 5 2007, 14:16 aaarrr Цитата(Amper25 @ Sep 5 2007, 18:16) Я воо... Sep 5 2007, 14:36 DASM Он относится к IRQ или FIQ . Без чтения док - изви... Sep 5 2007, 14:28 Amper25 Спасибо, что просветили. Я просто предполагал, что... Sep 5 2007, 17:31 aaarrr Цитата(Amper25 @ Sep 5 2007, 21:31) Вообщ... Sep 5 2007, 21:58  kizeev_e Цитата(aaarrr @ Sep 11 2007, 15:08) Проце... Sep 11 2007, 13:51   aaarrr Цитата(kizeev_e @ Sep 11 2007, 17:51) ...... Sep 11 2007, 13:59    kizeev_e Цитата(aaarrr @ Sep 11 2007, 17:59) Ему с... Sep 11 2007, 14:17 DASM aaarrr "ldr pc, [pc, #-0xf20]."
Мое личн... Sep 11 2007, 15:09 aaarrr Цитата(DASM @ Sep 11 2007, 19:09) aaarrr ... Sep 11 2007, 15:17 DASM угу. читаем с минусом с перелетом на 4 Гб. А вот в... Sep 11 2007, 15:26 aaarrr Если это трюк, то зачем производители упорно кладу... Sep 11 2007, 15:54 DASM Это их проблемы. Я не говорю Запрещенный трюк. Я г... Sep 11 2007, 16:18 aaarrr Да я и не навязываю этот "трюк" никому. ... Sep 11 2007, 16:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|