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

 
 
> В какой моде запускать main?, Вот в чем вопрос.
DpInRock
сообщение Apr 17 2009, 00:51
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Почему-то я не смог обеспечить вложенные прерывания, если запускаю процессор
в SVC mode. __nested подвешивает тогда прерывания намертво. И никаких тебе приоритетных прерываний.

Таким образом только USER or System.

А без вложенных прерываний - жизнь не мила. Символы RS232 приемника теряются.

Но где-то мелькало сообщение, что WinCE запускает программы юзера в SVC mode. (Товарищ, который об этом писал из пользовательской программы менял таблицу распределения виртуальной памяти и вообще, делал все, что хотел.)

Возможно, если вход-выход из IRQ писать отдельно и читать руками вектор прерывания, то может и можно что-то сделать? И стоит ли?
А то уж очень не хочется ломать прямую загрузку вектора из АИК. Типа, одна команда, практически.

И чем так плоха System mode?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
5 страниц V  « < 3 4 5  
Start new topic
Ответов (60 - 61)
defunct
сообщение Apr 18 2009, 02:47
Сообщение #61


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ Apr 18 2009, 04:57) *
А TE сбрасывать приходится? Ну, может просто повезло. Однако ситуация была отловлена вполне конкретно: TGO стоит, а передачи на самом деле нет.

Приходится, но это редкое явление, хотя устройств много... уже б наверное проявилось где-то/как-то.
Вот сейчас проделал небольшой эксперимент "в лоб", после установки EMAC_TSTART вставил сл. код:
Код
    ....
    // Start frame transmission.
    pEMAC->EMAC_NCR |= AT91C_EMAC_TSTART;

    delay_cycles( rnd() & 0xFFF );

    if (pEMAC->EMAC_TSR & AT91C_EMAC_TGO)
    {
        pEMAC->EMAC_NCR &= ~AT91C_EMAC_TE;
        r++;

        if (pEMAC->EMAC_TSR & AT91C_EMAC_TGO)
            f++; // TGO still set (reset failed)
        else
            s++; // TGO=0 (reset succeed)
    }
    ....
}

Пока r == s (уже > 100K)

PS: проц из относительно старой партии - 0616.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 18 2009, 13:08
Сообщение #62


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ Apr 18 2009, 06:47) *
Вот сейчас проделал небольшой эксперимент "в лоб"

Спасибо, конечно, но это уж слишком "в лоб", у меня так тоже ничего не залипает. Есть еще куча условий, которые трудно будет воспроизвести... да и выделить тоже.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 20:08
Рейтинг@Mail.ru


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