Перейти к содержанию
    

Пропадание прерываний при отладке через J-Link

Собственно тема уже "пережевана" достаточно подробно. Но рабочего метода решения я так и не нашел. Во всяком случае у меня все равно отваливаются. Проц - at91sam7s64. Keil uVision V3.23. Работаю через RDI с MT-Link'ом пятой версии. Драйвера последние. Хотя пробовал и на старых. Отваливаются все прерывания, которые использую - таймеры, USB и Debug.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Странно... Неужели никто не наступал на эти грабли...

Вы же видели при поиске, что наступали :) только осмысленного решения не нашлось. При каких условиях у меня пропал "эффект" я писал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы же видели при поиске, что наступали :) только осмысленного решения не нашлось. При каких условиях у меня пропал "эффект" я писал.

 

В том то и дело что все читал. Но уже не найти где именно. Если не сложно в двух словах повторите...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы же видели при поиске, что наступали :) только осмысленного решения не нашлось. При каких условиях у меня пропал "эффект" я писал.

В том то и дело что все читал. Но уже не найти где именно. Если не сложно в двух словах повторите...

В той же ветке, на которую дал ссылку zltigo мое понимание ситуации. На данный момент это вылилось в такую добавку к .maс:

execUserReset()
{

    ...............

    Reset_AIC();

    __message "-------------------------------Set PC Reset ----------------------------------";
    __writeMemory32(0x00000000,0xB4,"Register");
}


var i;
Reset_AIC()
{
    // AIC
    __writeMemory32(FFFFFFFF, 0xFFFFF124,"Memory");                 // IDCR, disable ints

    for (i = 0; i < 32; i++) {
        __writeMemory32(0, 0xFFFFF000 +  * 4,"Memory");             // SMR[0..31]
        __writeMemory32(0, 0xFFFFF080 +  * 4,"Memory");             // SVR[0..31]
    }

    for (i = 0; i < 8; i++) {
        __readMemory32(0xFFFFF100,"Memory");                        // IVR,
        __writeMemory32(0, 0xFFFFF130,"Memory");                    // EOICR, reset priority controller logic
    }
}

не скажу, что работает идеально, но существенно помогает. и конечно AT91C_BASE_AIC->AIC_EOICR = 0 в __low_level_init(); после инициализации контроллера (шаманство, но помогает).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не скажу, что работает идеально, но существенно помогает. и конечно AT91C_BASE_AIC->AIC_EOICR = 0 в __low_level_init(); после инициализации контроллера (шаманство, но помогает).

Мне подобные пляски на LPC2xxx не помогли никак, при этом DASM (есто еще одна веточка на форуме "про прерывания" ) утверждал, что у него на AT91 вообще никаких проблем. Вот такие дела :(.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В той же ветке, на которую дал ссылку zltigo мое понимание ситуации. На данный момент это вылилось в такую добавку к .maс:

...

 

не скажу, что работает идеально, но существенно помогает. и конечно AT91C_BASE_AIC->AIC_EOICR = 0 в __low_level_init(); после инициализации контроллера (шаманство, но помогает).

 

Заранее дико извиняюсь за лишние вопросы. *.mac файлы - они для IAR'а? Я же работаю в keil'e и мне не найти функцию, которая вызывается при нажатии кнопки Reset в дебагере.

 

 

 

Мне подобные пляски на LPC2xxx не помогли никак, при этом DASM (есто еще одна веточка на форуме "про прерывания" ) утверждал, что у него на AT91 вообще никаких проблем. Вот такие дела :( .

 

Да, я с ним уже успел поговорить. Он был весьма удивлен моими проблемами. Посоветовал пообщаться с Вами. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...