Jump to content

    

demiurg_spb

Свой
  • Content Count

    2764
  • Joined

  • Last visited

Everything posted by demiurg_spb


  1. Посмотрел код на Вашем гитхабе и захотел узнать в чём цымус такого синтаксиса: #if (defined RCC_APB1ENR_SPI2EN) ...... #endif Я привык наблюдать несколько иную последовательность буковок: #if defined(RCC_APB1ENR_SPI2EN) ...... #endif В данном случае короче и яснее было бы ИМХО так #ifdef RCC_APB1ENR_SPI2EN ...... #endif Это конечно дело вкуса, но хочется узнать подоплёку)
  2. По теме тестирования памяти: https://habr.com/ru/post/484026/ Алгоритмы наверное можно подглядеть чтобы велосипед не изобретать.
  3. Скорее всего не тот режим SPI выбран. +1
  4. Женя, подумайте о том, где хранятся строки, пока контроллер отключен от питания, и о том, откуда они загружаются в ОЗУ...
  5. В контексте AVR. Тут на асме есть не табличная реализация. https://www.nongnu.org/avr-libc/user-manual/group__util__crc.html https://www.nongnu.org/avr-libc/user-manual/crc16_8h_source.html Интересно было бы сравнить с Вашим решением по скорости и по объёму кода.
  6. Вы почитайте внимательно ссылки - там есть ответы на все ваши не очень умные вопросы (извините). А "тот мужик" - это весьма известный и очень уважаемый контрибутор avr-gcc. На нашем форуме есть несколько человек: Клён и aesok (Анатолий Соколов), так или иначе связанных с сообществом gcc. Можете у них взять консультации чтобы развеять сомнения...
  7. Есть ряд старых проектов, которые лично мне приходится поддерживать. Да и так... жаль безвозвратно потерять связь с беззаботной юностью)
  8. источник Для разрешения ситуации народ скидывается чтобы оплатить необходимую доработку. Подайте кто сколько может!
  9. https://forum.cxem.net/index.php?/topic/12836-проектирование-качественных-печатных-плат/page/12/&tab=comments#comment-3146782
  10. #include <stdio.h> #include <stdlib.h> enum { TFD_CLOEXEC = 02000000 #define TFD_CLOEXEC TFD_CLOEXEC }; int main(void) { unsigned int i=0; #if defined(TFD_CLOEXEC) i |= TFD_CLOEXEC; #endif printf("i= 0x%08x\n", i); return 0; } Я к тому, что это можно использовать таким образом. И более ни к чему)
  11. Для общего понимания можете почитать это: https://stackoverflow.com/questions/1674032/static-const-vs-define-vs-enum На мой взгляд дефайны нужны только для их последующего использования в препроцессоре (как бы это ни было тавталогично)))). Для склейки, как jcxz показал, для условной компиляции и т.д. и т.п. to: Сергей Борщ #ifdef X ... #endif #if defined(X) && !defined(Y) ... #endif
  12. Приветствую коллеги! Столкнулись с проблемой при выполнении ПНР у заказчика. Сращиваем сетевое оборудование по оптике (пара (TX и RX) одномодовых кабелей 9/125 мкм) - MOXA EDS408A-SS-SC-T (100BaseFX) https://moxa.ru/shop/ethernet/managed/eds_400a/eds408a/eds-408a-ss-sc/ - cisco WS-C2960RX-24TS-L V02 + SFP модуль Сначала был куплен для cisco SFP модуль 1000BASE-LX SFP (GLC-LH-SMD) не заработало ничего. Стали гуглить и нагуглили, что по оптике FE (100BASE) и GE (1000BASE) не совместимы (используются различные кодировки данных 4B/5B и 8B/10B и пр. различия). А мы то и не знали((( Купили другой SFP модуль 100BASE-LX SFP (GLC-FE-100LX) включаем - тот же результат. Проблема: нет даже линков, про пинги молчу. Ваши мысли/предложения… Спасибо! PS: Возможно-ли что у MOXA 100BaseFX одномод - это их личный велосипед? т.к. у cisco вообще нет таких (100BaseFX одномод) SFP модулей, а у самой Moxa есть https://moxa.ru/shop/ethernet/sfp/fast/sfp-1feslc-t/ Главный вопрос на текущий момент: Совместим ли 100Base-FX (IEEE 802.3u) с 100Base-LX10 (IEEE 802.3ah) Если нет то придётся покупать третий вариант SFP модуля или можно обойтись аттенюаторм? https://m.habr.com/ru/post/208202/
  13. Я так понимаю, это Вы уже читали... http://port70.net/~nsz/c/c11/n1570.html#7.17
  14. https://beremiz.org/ https://sm1820.github.io/beremiz/ http://we.easyelectronics.ru/plc/beremiz-svobodnaya-sreda-programmirovaniya-plk-chast-1.html
  15. Забейте в гугле "beremiz руководство" и увидите доку на русском языке...
  16. 1. Проект не портируется, а создаётся Ваш плагин для интеграции вашего таргета в IDE Beremiz. По времени - всё зависит от квалификации разработчика от (нескольких дней до нескольких месяцев или даже лет). 2. "Их" компилятор - это Ваш родной компилятор Си, которым Вы обычно собираете прошивку для своего таргета. Поэтому как вы захотите так и будет. Хоть есть ОС в проекте, хоть нет. Глобальный смысл - дать возможность конфигурировать _пользовательскую_ часть СИ-проекта через интерфейс IDE Beremiz, не затрагивая базовых модулей проекта, коих может быть целая куча (интерфейсы, протоколы, алгоритмы и т.п.). Эти базовые модули уже скомпилированы заранее в системную библиотеку, ассоциированную с вашим плагином. Если будут дополнительные вопросы, то почитайте эту ветку https://electronix.ru/forum/index.php?app=forums&amp;module=forums&amp;controller=topic&amp;id=132105 и подпишитесь на рассылку beremiz-devel@lists.sourceforge.net.
  17. А квалифицированных, способных заниматься реверс-инжинирингом, в пределах статистической погрешности. Не льстите им...
  18. Пересобирать ВЕСЬ проект не надо. Надо лишь пересобрать ТОЛКО пользовательскую часть и СЛИНКОВАТЬ с библиотекой (она не в исходных кодах...)
  19. Да. Я дописал сообщение, но не меняя его смыла. А что страшного в передаче пользователю библиотеки для линковки проекта? Вы думаете, что кто-то позарится на Вашу интеллектуальную собственность? Да шансы есть. Тогда можно сделать двухуровневый загрузчик и вынести туда ту часть которую вы хотите сокрыть. Всегда есть варианты...
  20. Решать всё равно Вам, я лишь предложил пройденный нами путь.
  21. Да. И что? Вся прошивка заливается заново всякий раз как пользователь что-то изменил в алгоритме. Неизменный лишь bootloader. Это оптимально для маленьких контроллеров: никаких виртуальных машин и интерпретаторов.