Jump to content

    

Petka

Свой
  • Content Count

    1438
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Petka

  • Rank
    Профессионал
  • Birthday November 12

Контакты

  • ICQ
    Array

Recent Profile Visitors

5765 profile views
  1. мультикаст в данной задаче не поможет? а TTL=1 ? Хотя нет, TTL=1 не поможет. Проверил. Роутер TTL не уменьшает.
  2. Нет. Соберётся, но работать не будет. Те версии, что я собирал для кварца 7,3727 были "особенные". Для того, что бы программатор успевал на малой частоте выполнять нужную работу была выкинута часть расширенного функционала и проведена мелкая оптимизация. Если ОЧЕНЬ надо, то попробую найти те исходники. Но как говорится без гарантий =)
  3. Можно перешить "дискавери" в "Versaloon".
  4. Проверьте номиналы резисторов в программаторе.
  5. В крайней прошивке программатора сигнатура исправлена. Обновите прошивку.
  6. Ага, и USB видеокарта тоже на 1.1 должна работать? =)
  7. Косяк у Кейла

    Согласен, конструкция не нужна при одном или нескольких нижеследующих случаях. 1) Если в работе используется только один компилятор. (IAR к примеру) 2) Если в работе используется только одна архитектура. (ARM к примеру) 3) Если в работе участвует только один человек. (С высокой культурой программирования) 4) Если в работе не требуется следовать стандартам индустрии. (MISRA C к примеру) 5) Если в работе не требуется использовать макросы-как-функции. (Для целей отладки, например) 6) Если в работе используется компилятор с полностью отключенной оптимизацией, или настолько древний, что константы в условиях не обрабатываются на стадии компиляции. 7) Если в работе принято не признавать своих заблуждений.
  8. Косяк у Кейла

    Не утруждайтесь. Это такой стиль. Или как принято говорить: двойные стандарты. Когда я в этой теме просил "гуру" дать ссылки на подтверждение своих голословных заявлений (http://electronix.ru/forum/index.php?s=&showtopic=130098&view=findpost&p=1361284) , то "гуру" не соизволил ничего ответить по существу дела. Вместо этого "гуру" зачем-то приплёл не относящийся к делу пустой "for(;;)" прекрасно понимая что это совсем не эквивалент do-while-zero конструкции. Забавно получилось, что "гуру" вместо признания своей ошибки начал загонять себя ещё глубже, ссылаясь на "творца Си" Денниса Ритчи. Однако, "гуру" забыл что в сеть попали исходники самых первых трансляторов. По исходникам становится очевидно, что конструкция for вообще отсутствовала в первом компиляторе а для циклов "творец" использовал while. P.S. Будьте добрее. Всем хороших выходных.
  9. Как было сказано выше можно на регионы памяти назначать целиком единицы линковки. К примеру всё из startup.o размещать во внутренней памяти а всё остальное во внешней.
  10. Гуглить "скрипт линкера".
  11. Косяк у Кейла

    Тут такое дело... Код от "Самого" Ритчи: https://github.com/mortdeus/legacy-cc/blob/...120c/c11.c#L219 И не надо фантазировать на пустом месте по поводу скобок. P.S. Так я от Вас и не получил подтверждения Ваших слов про: "...ибо while(константа) принципиально ошибочное выражение,..." Получил только очередные фантазии про цикл for(;;), которого ВООБЩЕ не было в первых компилаторах Си. А while был. И автор языка для циклов использовал именно while.
  12. Косяк у Кейла

    Очевидно, тут не вопрос веры. Сказали "А", говорите и "Б". Если "лишние" пробельные символы компилятор может удалять(игнорировать) без предупреждений, то и валидные конструкции "while(0)", "for(;;)", "#if 0", по той-же самой логике транслятор должен обрабатывать согласно стандарту "НЕ РАССУЖДАЯ". Что бы не уводить обсуждение в сторону прошу подкрепить или опровергнуть Ваше заявление Откуда вы это взяли? Есть какой-то стандарт где это описано? Отраслевые инструкции? Исследования? В книжке какой-то прочитали? Бложик? Твиттер? Сплетни? С удовольствием ознакомлюсь с источником такой информации.
  13. Косяк у Кейла

    Резюме: "вменяемый компилятор" по умолчанию не выдаёт предупреждение на вполне законную конструкцию. Плюсик к IAR Systems. В качестве литературной гиперболы: в конструкции: r = (a * b) + (c * d); тоже есть "лишние конструкции", которые транслятор "выкинет". Например, скобки вообще "лишние". Да и пробелы совсем не нужны. Может программист "все-же рассчитывал этими скобками на какой-то другой эффект"? Резюме: наличие широкого спектра предупреждений в трансляторах это хорошо. Но порою производители "инструментов" немного перегибают палку. P.S. Модераторам: из топика имеет смысл обсуждение конструкции do-while-zero вынести в отдельную тему.
  14. Косяк у Кейла

    1) С точки зрения стандарта Си конструкция do-while-zero не является "Implementation-Defined Behavior", "Undefined behavior" или пр. Так что поводов "давать по рукам" программисту никаких нет. 2) Уважаемый Вами инструмент от "IAR Systems" имеет возможность проверять в том числе и правила "MISRA C". Было бы забавно наблюдать что на единственно возможную конструкцию согласно правилам "MISRA C" транслятор при проверке будет выдавать предупреждение. :smile3046:
  15. Косяк у Кейла

    Что-то задело меня это безапелляционное утверждение. Для Си-программистов встраиваемых систем группа "энтузиастов" из индустрии разработала стандарт "MISRA C". Приведу небольшую выдержку из стандарта редакции 2004 года. Так что если заниматься программированием для встраиваемых систем, такая нотация макросов является не только "допустимой", но и обязательной (с точки зрения MISRA C).