Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Инструментарий

Инструментарий Тестеры, паяльники, осциллографы, программаторы, IDE.

Ответ
 
Опции темы Опции просмотра
Старый 30.10.2010, 22:38   #301
ctef
Senior Member
 
Регистрация: 22.08.2008
Сообщений: 118
Вес репутации: 100/44
ctef will become famous soon enoughctef will become famous soon enough
По умолчанию Re: Вопросы по OSA

Подскажите что не так делаю?
Операционка Windows 7 Ultimate скачал файлы OSA, OSAcfg_Tool
пытаюсь запустить OSAcfg_Tool пишет что
Цитата:
this application has not been designed for this operating system
пробывал запускать от имени администратора, результат тот же
то-есть под эту операционку пользоваться Утилитой OSAcfg_Tool
нельзя?
ctef вне форума   Ответить с цитированием
Старый 30.10.2010, 23:13   #302
Андр
Member
 
Регистрация: 18.10.2007
Возраст: 41
Сообщений: 50
Вес репутации: 91/0
Андр will become famous soon enough
По умолчанию Re: Вопросы по OSA

У меня запустилось в режиме совместимости с XP Sp2.
Андр вне форума   Ответить с цитированием
Старый 31.10.2010, 07:49   #303
ctef
Senior Member
 
Регистрация: 22.08.2008
Сообщений: 118
Вес репутации: 100/44
ctef will become famous soon enoughctef will become famous soon enough
По умолчанию Re: Вопросы по OSA

Спасибо!!! заработало
ctef вне форума   Ответить с цитированием
Старый 01.11.2010, 12:15   #304
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Если несколько раз подряд вызвать сервис OS_DI(), а затем OS_EI() разряды битов прерываний вернутся в значение до первого вызова OS_DI().
В общем так можно или нет?
Код:
while(a==1){
OS_DI();
if(a==2) continue;
OS_EI();
}
maxNTF вне форума   Ответить с цитированием
Старый 01.11.2010, 12:45   #305
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Если несколько раз подряд вызвать сервис OS_DI(), а затем OS_EI() разряды битов прерываний вернутся в значение до первого вызова OS_DI().
В общем так можно или нет?
Код:
while(a==1){
OS_DI();
if(a==2) continue;
OS_EI();
}
OS_EI() разрешает прерывания безусловно. OS_DI(), помимо запрещения, еще сохраняет предыдущее их состояние, которое можно восстановить с помощью OS_RI().

Следует осторожно обращаться с вызовом OS_DI() и его возвращаемым значением. Как я уже сказал, OS_DI возвращает предыдущее состояние флагов GIEH и GIEL (или только GIE, если IPEN сброшен). В жтой ситуации:
Код:
    temp = OS_DI();
    ...
    temp = OS_DI();
    ...
    OS_RI(temp);
Восстановления прерываний не произойдет, т.к. до вызова OS_RI производится повторный вызов OS_DI, который в temp запишет состояние флагов прерывания на данный момент, а именно то, которое было установлено первым OS_DI() (т.е. сброшенные).

Твой пример не совсем корректный, т.к. может случиться так, что переменная 'a' изменится в прерывании между проверкой while (a==1) и вызовом OS_DI. Таким образом ты условием if (a==2) проскочишь OS_EI и попадешь опять на while, который тебя выкинет из цикла.

Опять же не понятно, почему ты проверку одного условия защищаешь от прерываний, а другого - нет. Правильнее писать так:
Код:
    OST_UINT itemp;

    itemp = OS_DI();
    while (a == 1)
    {
        OS_RI(itemp);
        if (a == 2) continue;
        OS_DI();
    };
    OS_RI(itemp);
(Только все равно какая-то галиматья в алгоритме)
tester вне форума   Ответить с цитированием
Старый 01.11.2010, 12:56   #306
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
(Только все равно какая-то галиматья в алгоритме)
Какой пример привел, такой алгоритм и получается
нужно было привести такой пример
Код:
OS_DI();
OS_DI();
OS_EI();
Но собственно ответ я на свой вопрос получил, спасибо!
На сколько я понимаю, если я отключаю и соответственно включаю все прерывания, тогда сервис OS_RI() не нужно вовсе пользовать. Так?

P.S.
Упс, не совсем вроде так. OS_EI() ведь включает все прерывания, а не только те, которые были включены до вызова OS_DI() ???
Немного я запутался:
OS_DI() - Этот сервис не просто запрещает прерывания, а еще возвращает состояние битов GIEx. Для PIC18 при IPEN=1 запрещаются (и, соответственно, сохраняются) GIEH и GIEL, а при IPEN=0 - только GIE.
Где сохраняются? И что сохраняется если он будет повторно вызван?
OS_EI() - устанавливает флаги всех прерываний, или только те которые сохранил OS_DI()?

Последний раз редактировалось maxNTF; 01.11.2010 в 13:06.
maxNTF вне форума   Ответить с цитированием
Старый 01.11.2010, 13:04   #307
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
На сколько я понимаю, если я отключаю и соответственно включаю все прерывания, тогда сервис OS_RI() не нужно вовсе пользовать. Так?
Нет. Это серьезная ошибка. Смотри:
Код:
void main (void)
{
    ...
    OS_DI();
    func1();
    func2();
    func3();
    OS_EI();
    ...
}

void func1 (void)
{
    ...
    OS_DI();
    if (a == 1) ...;
    OS_EI();
    ...
}
Читая код функции main(), ты считаешь, что все три фукнции будут выполнены под запретом прерываний. А на самом деле func1 разрешает прерывания, из-за чего в редких случаях func2 и func3 могут давать сбой.

Безусловное разрешение прерываний довольно опасно. В идеале его можно делать только один раз при старте программы.

Правильно писать так:
Код:
void main (void)
{
    OST_UINT itemp;
     ...
    itemp = OS_DI();
    func1();
    func2();
    func3();
    OS_RI(itemp);
    ...
}

void func1 (void)
{
    OST_UINT itemp;
     ...
    itemp = OS_DI();
    if (a == 1) ...;
    OS_RI(itemp);
    ...
}
(Описанная в предыдущем посте коллизия здесь не возникнет, т.к. состояния прерываний сохраняются в разные переменные.)
tester вне форума   Ответить с цитированием
Старый 01.11.2010, 13:19   #308
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Где сохраняются? И что сохраняется если он будет повторно вызван?
OS_DI - это функция. Значения битов GIEx до вызова сохраняются в возвращаемом значении.
Код:
    // Сейчас INTCON = 0xE0, IPEN = 1

    itemp = OS_DI();
    // Теперь: INTCON = 0x20, itemp = 0xC0

    itemp2 = OS_DI();
    // Теперь: INTCON = 0x20, itemp = 0xC0, itemp2 = 0x00
Цитата:
OS_EI() - устанавливает флаги всех прерываний, или только те которые сохранил OS_DI()?
OS_EI безусловно разрешает перрывания. Если IPEN == 1, то устанавливаются GIEL и GIEH; если IPEN == 0, то только устанавливается только GIE. (Вне зависимости от вызовов OS_DI)
tester вне форума   Ответить с цитированием
Старый 04.11.2010, 19:34   #309
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
Exclamation Re: Вопросы по OSA

Пронаблюдал некую коллизию связанную с запрещением и разрешением прерываний.
Вот к пример есть две задачи Task1 и Task2
Task1
Код:
memint = OS_DI();
…
OS_Wait(n);
…
OS_RI(memint);
OS_Yield();
Task 2
Код:
OS_Wait(n);
…
INTCONbits.GIEH = 0;
…
OS_Wait(n);
…
INTCONbits.GIEH = 1;
То есть получается, что запретив прерывания в первой задачи, начинаем выполнять некие операции, и среди этих операций есть сервисы которые могут менять контекст.
Во второй задаче в какой то момент появляется необходимость отключить только часть прерываний, и снова отдать контекст. Первая задача обработала свои данные и включила все прерывания, в то время когда Task2 на это совсем не рассчитывает!
Возможно данная ситуация описана в документации и я ее просто пропустил, а если нет то опасность возникновения таких коллизий желательно описать в описании сервисов связанных с прерываниями!
maxNTF вне форума   Ответить с цитированием
Старый 04.11.2010, 19:58   #310
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Пронаблюдал некую коллизию связанную с запрещением и разрешением прерываний.
Слушай! То, что ты вытворяешь с запретом прерываний - это безобразие . Почему - ты сам ответил своим вопросом.Нельзя прерывания запрещать перед передачей контекста. Лучше вообще в задаче забыть о том, что есть прерывания.

На крайние случаи есть критические секции: OS_EnterCriticalSection и OS_LeaveCriticalSection. Но для кооперативной OS эти сервисы сделаны просто для галочки. Они запрещают прерывания и блокируют все задачи кроме той, которая вошла в критическую секцию.
tester вне форума   Ответить с цитированием
Старый 04.11.2010, 20:09   #311
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
Нельзя прерывания запрещать перед передачей контекста.
Вот эту фразу и нужно поместить перед описанием сервисов OS_DI, OS_EI и OS_RI.
Цитата:
Слушай! То, что ты вытворяешь с запретом прерываний - это безобразие .
Вообще я так не делаю, все выше описанное это лишь предположение! По этому и предложил в инструкции написать, чтоб не у кого не было желания так поступить

P.S.
У нас ведь как, если не запрещено значит можно!
maxNTF вне форума   Ответить с цитированием
Старый 04.11.2010, 20:15   #312
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,500
Вес репутации: 2750/83
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
Слушай! То, что ты вытворяешь с запретом прерываний - это безобразие . Почему - ты сам ответил своим вопросом.Нельзя прерывания запрещать перед передачей контекста. Лучше вообще в задаче забыть о том, что есть прерывания.

На крайние случаи есть критические секции: OS_EnterCriticalSection и OS_LeaveCriticalSection. Но для кооперативной OS эти сервисы сделаны просто для галочки. Они запрещают прерывания и блокируют все задачи кроме той, которая вошла в критическую секцию.
Горячитесь, коллега Судя по абривеатуре: ".GIEH = 0;" вторая(и никакая) задача управления не получит никогда и это будет чистый "вис", что сразу станет всем заметно. Или шедулер на каком то другом .GIE сидит?
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 04.11.2010, 20:18   #313
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от pal1222@yandex.ru Посмотреть сообщение
вторая(и никакая) задача управления не получит никогда и это будет чистый "вис"
C какой это радости?
maxNTF вне форума   Ответить с цитированием
Старый 04.11.2010, 20:23   #314
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Вот эту фразу и нужно поместить перед описанием сервисов OS_DI, OS_EI и OS_RI.
Запрещать/разрешать (или правильнее - восстанавливать) прерывания все равно бывает нужно (либо для атомарного доступа, либо для соблюдения каких-то временных характеристик, либо еще для чего-то) и помещать такие фразы в описании этих сервисов - это просто пугать народ.

А то, что нельзя этого делать перед тем, как передать управление планировщику, вроде, должно быть понятно. Все-таки модуль прерываний - тоже разделяемый ресурс.
tester вне форума   Ответить с цитированием
Старый 04.11.2010, 20:24   #315
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от pal1222@yandex.ru Посмотреть сообщение
Или шедулер на каком то другом .GIE сидит?
OSA - кооперативная. У нее шедулер вообще не на прерывании.
tester вне форума   Ответить с цитированием
Старый 04.11.2010, 21:16   #316
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,500
Вес репутации: 2750/83
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
OSA - кооперативная. У нее шедулер вообще не на прерывании.
По первому пункту "в курсе": исходники, не помню какой версии, скачал и видел... а вот как анализируется условие пердачи управления, не помню. Не подсказывайте, сам посмотрю
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 03.12.2010, 17:27   #317
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Как дела обстоят с переходами goto в пределах функции задачи. Возможны ли какие глюки?
maxNTF вне форума   Ответить с цитированием
Старый 03.12.2010, 18:36   #318
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Как дела обстоят с переходами goto в пределах функции задачи. Возможны ли какие глюки?
С гоуту все в порядке, использовать можно.
tester вне форума   Ответить с цитированием
Старый 21.12.2010, 14:39   #319
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Как можно определить какую задачу планировщик выберит следующую?
Суть в чем - при отладке попав в планировщик слишком долго приходится шагать, пока не выйдеш в следующую задачу. А поставить на все задачи брекпоинты нет возможности (отлаживаю PICkit 2).
maxNTF вне форума   Ответить с цитированием
Старый 21.12.2010, 15:08   #320
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Как можно определить какую задачу планировщик выберит следующую?
Суть в чем - при отладке попав в планировщик слишком долго приходится шагать, пока не выйдеш в следующую задачу. А поставить на все задачи брекпоинты нет возможности (отлаживаю PICkit 2).
В неприоритетном режиме: смотрим, на какой элемент массива OS_Tasks указывает _OS_CurTask, соответственно, следующей управление получит задача, на которую указывает следующий элемент массива. (При условии ее готовности)
В приоритетном: самое простое - ставить breakpoint на непосредственный переход из планировщика в задачу. Для PIC18 см. функцию _OS_JumpToTask (в port\pic\osa_pic18_xxxx.c). Но туда попадаем для всех задач (и готовых и неготовых). А так надо брекпоинт ставить внутри макроса OS_Sched (kernel\system\osa_system.h) в самом конце внутрь условия:
Код:
        if (_OS_Flags.bBestTaskFound)
        {
            _OS_Flags.bCheckingTasks = 0; /* MODE: executing best task    */
            _OS_LastTask = _OS_CurTask = _OS_BestTask;
            _OS_SET_STATE();
            if (_OS_bTaskEnable && !_OS_bTaskPaused) 
                 goto _OS_SCHED_RUN;   <====== СЮДА ======
        }


Последний раз редактировалось tester; 21.12.2010 в 15:14.
tester вне форума   Ответить с цитированием
Старый 21.12.2010, 17:02   #321
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Ок спасибо!
Я в начале и смотрел по списку Task, только не учел что кроме ready нужно на другие флажки внимания обращать - типа pause
maxNTF вне форума   Ответить с цитированием
Старый 23.12.2010, 17:10   #322
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Вопрос может быть не совсем в тему но наткнулся именно на сервисе от оса, который по сути просто макрос так что дело тут не в ОС.
Глюк похоже компилятора (mcc18 v3.34), не встречалось такого?
Миниатюры
step1.jpg   step2.jpg   step3.jpg  

Последний раз редактировалось maxNTF; 23.12.2010 в 17:29.
maxNTF вне форума   Ответить с цитированием
Старый 23.12.2010, 17:13   #323
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Если перед сервисом OS_Init() ставлю NOP, то тогда это уже выглядит так:
Код:
MOVLB 0xc
CLRF 0x44, BANKED
CLRF 0x45, BANKED
И все работате!
Из за чего может получатся такой глюк? На сколько я понимаю компилятор не выберает банк памяти!
Похоже на явный глюк компилятора!
maxNTF вне форума   Ответить с цитированием
Старый 23.12.2010, 17:20   #324
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Если перед сервисом OS_Init() ставлю NOP, то тогда это уже выглядит так:
Код:
MOVLB 0xc
CLRF 0x44, BANKED
CLRF 0x45, BANKED
И все работате!
Из за чего может получатся такой глюк? На сколько я понимаю компилятор не выберает банк памяти!
Похоже на явный глюк компилятора!
Смотрю, у тебя структура сразу в двух банках размещена. После обращения к ней в OS_Queue_Create компилятор, возможно, считает, что банк все еще выбран правильно. Попробуй модель памяти данных переключить на Large.

(Кстати, не рекоменуется вызывать сервисы ОС до OS_Init. В данном случае, конечно, ничего не случится, но, например, все бинарные семафоры обнуляются в OS_Init)
tester вне форума   Ответить с цитированием
Старый 23.12.2010, 22:31   #325
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
Попробуй модель памяти данных переключить на Large.
Так и есть!
maxNTF вне форума   Ответить с цитированием
Ответ

Метки
osa, rtos, сторожевой таймер


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Все вопросы по MikroC shnitz Инструментарий 971 23.09.2016 13:22
Статья по RTOS OSA tester Продукция MICROCHIP 12 24.02.2009 12:04
16F690, вопросы по timer1 и встроенному 32кГц-генератору e_glu Продукция MICROCHIP 3 29.01.2009 17:14
Есть вопросы по алгоритму работы устройства на пике. 40grad Продукция MICROCHIP 9 27.10.2007 15:55
Пишу руководство по RS485 и есть вопросы pvl2000 Cетевые протоколы и технологии 2 16.04.2007 00:57


Часовой пояс GMT +3, время: 15:52.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot