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

    

solosh

Участник
  • Публикаций

    13
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. IAR 5.30 ARM

    Цитата(zltigo @ Sep 17 2009, 19:10) Для более жесткого переключения вполне хорошим приемом является и вызов-эмуляция некого прерывания, на котором висит обертка и переключение контекста, из обработчика прерывания без обертки. И в scmRTOS тоже так сделано. А обработчик прервания на входе сохраняет только те регистры, которыми будет пользоваться, а не весь контекст.
  2. Нужен еще один проход препроцессора. Вот как раз Ваш случай: http://electronix.ru/forum/index.php?s=&am...st&p=361393
  3. Попробуйте для создания уникальных имен использовать макросы __LINE__ и __FILE__
  4. Два потока на си

    Цитата(Сергей Борщ @ Sep 13 2008, 22:08) Можно написать. Встречалась (сейчас не могу найти, может у кого-то из участников ссылка сохранилась) Protothreads - Lightweight, Stackless Threads in C http://www.sics.se/~adam/pt/expansion.html
  5. Цитата(dsp4us @ Aug 15 2008, 06:40) <solosh> - Вы правы "Сохраняется признак глобального состояния прерываний (разрешены/запрещены или текущий приоритет если есть таковой) плюс состояние флагов CPU.". Но дело то в том что "признак" я называю его маской прерываний запоминается в критической секции в стеке "старого/уходящего" процесса а новый признак востанавливается из стека "нового/приходящего" процесса. То есть все изменения сделанные в этой маске прерываний становяться не видными как только мы переключили процессы. Есть ли другой способ запретить все прерывания на вашем процессоре кроме как через маски ? Бит в регистре, например, или приоритет. И покажите еще код _xtos_ints_off/_xtos_ints_on, а то непонятно что в StatusReg у вас сохраняется.
  6. Сохраняется признак глобального состояния прерываний (разрешены/запрещены или текущий приоритет если есть таковой) плюс состояние флагов CPU. Маски отдельных прерываний не сохраняютя, т.е. если один процесс изменит, то увидят все.
  7. WinAVR-20080610

    Цитата(viakon @ Jun 27 2008, 11:29) Новый проект откомпилил на SUBJ работает. Только он на 100 байт больше оказался чем 20070525 Попробуйте ключик --param inline-call-cost, если вам важен размер. Например, "--param inline-call-cost=0" см. http://electronix.ru/forum/index.php?s=&am...st&p=393595
  8. Цитата(Neyron @ Jan 12 2008, 12:07) PORTD ^= (1<<PD7); - сброс собаки А период собаки какой ?
  9. MISRA C в IAR

    MISRA на мой взгляд, дает рекомендации избегать тех мест в языке С, которые могут вызвать неоднозначные трактования у программистов и компиляторов, а также не использовать конструкции, которые потенциально могут быть причиной ошибок. Если под оформлением понимать где сколько пробелов поставить, как выровнять комментарии, какие имена переменным и функциям давать и т.п., то это у La Brosse есть такое, как Вы правильно заметили. Еще видел подобные рекомендации на www.ganssle.com А общее правило у всех простое: какого бы безобразного стиля Вы не придерживались -- придерживайтесь его постоянно, в ходе всего проекта : )
  10. MISRA C в IAR

    MISRA С -- стандарт на написание программ с целью улучшить их надежность и предсказуемость поведения. Изначально разрабатывался для применеия в критических приложениях для автомобильной индустрии. Стандарт содержит 127 правил, некоторые из которых обязательны к выполнению (required), а некоторые помечены как рекомендативные (advisory). К примеру, правило 118 запрещает использование динамической памяти Rule 118: Required Dynamic heap memory allocation shall not be used.
  11. Вопрос по ATMega8 EEPROM

    Цитата(Juk1976 @ Aug 1 2005, 19:37)При включении схемы бывает такая "бяка", как произвольная запись в EEPROM случайных значений. (то-же наблюдалось в ATMega 103). Кто-то сталкивался с этим или нет? Если да - как с этим бороться???  Включение внутреннего BOD обычно помагает
  12. Использование avreal

    Цитата(ReAl @ Aug 1 2005, 15:31)Он очень давно их понимает. Цитата(avreal/description.htm)+имя установить тип кристалла, имя допускается задавать как с префиксом 'AT', так и без него, в том виде, в котором имена выдаются по -h Вот только -h и прочитал и потому не был уверен : ) Еще докладываю про * MEGA88 -- "работаю пару месяцев, полёт нормальный" v1.24rev0 (Jun 20 2004 09:49:12)
  13. Использование avreal

    А вот бы еще AVReal имена MCU в стиле avr-gcc понимал, чтоб два раза процессор в makefile не обзывать : ) ... Спасибо, Саш, за хороший программатор