Jump to content

    

solosh

Участник
  • Content Count

    13
  • Joined

  • Last visited

Community Reputation

0 Обычный

Контакты

  • ICQ
    Array
  1. IAR 5.30 ARM

    И в scmRTOS тоже так сделано. А обработчик прервания на входе сохраняет только те регистры, которыми будет пользоваться, а не весь контекст.
  2. Нужен еще один проход препроцессора. Вот как раз Ваш случай: http://electronix.ru/forum/index.php?s=&am...st&p=361393
  3. Попробуйте для создания уникальных имен использовать макросы __LINE__ и __FILE__
  4. Protothreads - Lightweight, Stackless Threads in C http://www.sics.se/~adam/pt/expansion.html
  5. Есть ли другой способ запретить все прерывания на вашем процессоре кроме как через маски ? Бит в регистре, например, или приоритет. И покажите еще код _xtos_ints_off/_xtos_ints_on, а то непонятно что в StatusReg у вас сохраняется.
  6. Сохраняется признак глобального состояния прерываний (разрешены/запрещены или текущий приоритет если есть таковой) плюс состояние флагов CPU. Маски отдельных прерываний не сохраняютя, т.е. если один процесс изменит, то увидят все.
  7. Попробуйте ключик --param inline-call-cost, если вам важен размер. Например, "--param inline-call-cost=0" см. http://electronix.ru/forum/index.php?s=&am...st&p=393595
  8. MISRA C в IAR

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

    MISRA С -- стандарт на написание программ с целью улучшить их надежность и предсказуемость поведения. Изначально разрабатывался для применеия в критических приложениях для автомобильной индустрии. Стандарт содержит 127 правил, некоторые из которых обязательны к выполнению (required), а некоторые помечены как рекомендативные (advisory). К примеру, правило 118 запрещает использование динамической памяти :) Rule 118: Required Dynamic heap memory allocation shall not be used.
  10. Включение внутреннего BOD обычно помагает
  11. Вот только -h и прочитал и потому не был уверен : ) Еще докладываю про * MEGA88 -- "работаю пару месяцев, полёт нормальный" v1.24rev0 (Jun 20 2004 09:49:12) <{POST_SNAPBACK}>
  12. А вот бы еще AVReal имена MCU в стиле avr-gcc понимал, чтоб два раза процессор в makefile не обзывать : ) ... Спасибо, Саш, за хороший программатор