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

 
 
> I2C LPC2xxx
GetSmart
сообщение Sep 25 2009, 16:51
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Есть исходник, работающий через I2C с термометром. Тестирую его без FreeRTOS - работает стабильно и долго. Запускаю Ось - глючит сильно, и иногда работает. I2C работает через прерывание. Компилятор CW. Под Осью оно описано так:
Код
void vI2C_ISR_Wrapper( void )
{
    /* Save the context of the interrupted task. */
    portSAVE_CONTEXT();

    /* Call the handler.  This must be a separate function from the wrapper
    to ensure the correct stack frame is set up. */
    vI2C_ISR_Handler();

    /* Restore the context of whichever task is going to run next. */
    portRESTORE_CONTEXT();
}

без оси так:
Код
void vI2C_ISR_Handler( void )
{
    asm("STMDB    SP!,{R0-R12,LR}");        // пролог для IRQ
...
    VICVectAddr = 0;        /* Acknowledge Interrupt */
    asm(    "LDMIA    SP!,{R0-R12,LR}    \n"    // эпиолог для IRQ
        "SUBS    PC,LR,#4    ");
}

Прерывания в обоих случаях внутри обработчиков запрещены. Начинка прерывания была взята из примеров с сайта NXP, хотя немного переделана. Параллельно с работой I2C прерывания работает FIQ с частотой 8 КГц. FIQ работает стабильно под осью и без оси, и на глюки в обоих вариантах (с осью/без) не влияет.

Вопрос: куда копать? Может кто описать особенности "написания программы" под FreeRTOS ? В том смысле, что вот этого например делать нельзя, или на вот это нужно обратить особое внимание, или ещё что-нить. Проект большой, так что выложить бОльшие куски кода пока не могу.

Сообщение отредактировал GetSmart - Sep 25 2009, 17:02


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Sep 26 2009, 21:53
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Ещё немного отшлифовал и улучшил. Работает прекрасно на 400 КГц I2C @ 24 МГц LPC2368. 7 тредов, 1 FIQ 8 КГц (занимающее 25% времени проца). Уж не знаю чем ещё загрузить проц для тестирования.
Прикрепленные файлы
Прикрепленный файл  I2C_GetSmart_2.rar ( 2.75 килобайт ) Кол-во скачиваний: 86
 


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GetSmart   I2C LPC2xxx   Sep 25 2009, 16:51
- - HARMHARM   Посмотрите как сделано в примерах, идущих с FreeRT...   Sep 25 2009, 19:50
- - zltigo   Цитата(GetSmart @ Sep 25 2009, 18:51) глю...   Sep 25 2009, 20:01
|- - GetSmart   Цитата(zltigo @ Sep 26 2009, 02:01) Исчер...   Sep 25 2009, 21:28
|- - aaarrr   Цитата(GetSmart @ Sep 26 2009, 01:28) То ...   Sep 25 2009, 21:44
|- - zltigo   Цитата(GetSmart @ Sep 25 2009, 23:28) То ...   Sep 25 2009, 21:55
|- - GetSmart   Цитата(zltigo @ Sep 26 2009, 03:55) Увлеч...   Sep 25 2009, 22:33
|- - zltigo   Цитата(GetSmart @ Sep 26 2009, 00:33) На ...   Sep 25 2009, 23:02
- - GetSmart   Грёбаный компилятор CW. Я щас с ума сойду от таких...   Sep 25 2009, 23:14
|- - aaarrr   Цитата(GetSmart @ Sep 26 2009, 03:14) Грё...   Sep 25 2009, 23:23
|- - GetSmart   Цитата(aaarrr @ Sep 26 2009, 05:23) Может...   Sep 25 2009, 23:35
|- - aaarrr   Цитата(GetSmart @ Sep 26 2009, 03:35) А н...   Sep 25 2009, 23:40
||- - GetSmart   Цитата(aaarrr @ Sep 26 2009, 05:40) На чт...   Sep 25 2009, 23:44
|- - zltigo   Цитата(GetSmart @ Sep 26 2009, 01:35) У В...   Sep 26 2009, 09:25
- - aaarrr   Хм. А в CW есть что-то уникальное?   Sep 25 2009, 23:54
|- - GetSmart   Цитата(aaarrr @ Sep 26 2009, 05:54) Хм. А...   Sep 25 2009, 23:59
- - GetSmart   Спешу обрадовать (ся?) всех. Переписал это левой н...   Sep 26 2009, 05:11
|- - IgorKossak   Цитата(GetSmart @ Sep 26 2009, 08:11) Есл...   Sep 26 2009, 09:39
- - GetSmart   Выкладываю. Причесал его как следует. По объёму те...   Sep 26 2009, 17:11
- - GetSmart   Много думал... До сих пор непонятно, нужно ли при ...   Sep 27 2009, 21:45
|- - aaarrr   Цитата(GetSmart @ Sep 28 2009, 01:45) До ...   Sep 27 2009, 21:57
- - Qwertty   Из за отсутствия NAK имел проблемы с ds1307 при чт...   Sep 28 2009, 15:53
- - GetSmart   Если кто уже успел опробовать исходники - поделите...   Oct 6 2009, 07:11


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

 


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


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