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

haker_fox

Модератор
  • Постов

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

  • Посещение

  • Победитель дней

    12

Сообщения, опубликованные haker_fox


  1. Добрый день, коллеги!

    Есть код, вычисляющий некую CRC32. Не могу найти в инете полином для её вычисления. И не знаю, как его получить. В контрольных суммах не очень хорошо разбираюсь. Мне нужно объяснить IARу, как просчитать образ ПО по такому же полиному. Может ли кто-нибудь помочь, или это вообще невозможно?

     

    Код вычисления КС32:

    unsigned long crc32(const void * pbuf, unsigned long count ) {
    
        const unsigned char * buf = static_cast<const unsigned char*>(pbuf);
        unsigned long crc = 0xFFFFFFFF;
        unsigned long i;
    
        /* This static table adds 1K */
        static const unsigned long crc_table [ 256 ] = {
            0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535,
            0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD,
            0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D,
            0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
            0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,
            0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C,
            0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC,
            0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
            0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB,
            0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,
            0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB,
            0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
            0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA,
            0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE,
            0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,
            0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
            0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409,
            0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81,
            0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739,
            0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
            0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268,
            0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0,
            0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8,
            0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
            0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,
            0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703,
            0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7,
            0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
            0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE,
            0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,
            0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6,
            0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
            0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D,
            0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5,
            0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,
            0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
            0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
        };
    
        for ( i = 0; i < count; i++ ) {
            crc = (crc >> 8) ^ crc_table [ (crc ^ buf [ i ]) & 0xFF ];
        }
        return ( crc ^ 0xFFFFFFFF );
    
    }

     

    P.S. Алгоритм менять нельзя! Вот тот какой есть, такой и есть...

  2. 29 minutes ago, tgruzd said:

    Но неподготовленный читатель поначалу будет запинаться об это.

    Нормально) Через некоторое время он станет подготовленным. В крайнем случае, исходник можно открыть с другим шрифтом.

  3. 2 hours ago, Obam said:

    А что за шрифт в редакторе, если не секрет? Узкий, моноширинный, без засечек, нолик перечёркнутый - лепота...

    Позволю себе поделиться своим шрифтом: Fira Code. По картинке только кликните, иначе слегка размытая.

    image.thumb.png.01d832184661cdcbadd95e9288d0267f.png

  4. 58 minutes ago, destroit said:

    надо отнестись к словам Бена

    А техтребования у него есть? JLCPCB даёт даже файл правил. А тут как?

    58 minutes ago, destroit said:

    а Бен изготовит любую присланную глупость

    DRC надо не забывать, и всё будет ок в 95%.

  5. 5 hours ago, vguard said:

    На electronix помнится кто-то заказывал и качество было хорошим.

    Интересно, как оно сейчас? У меня пока плат на заказ нет. Может быть кто-то из участников форума попробует, и отпишется.

  6. 8 hours ago, ElDrako said:

    Не, там реально теперь пока всё - временно отправка недоступна для всей РФ. Дело не в оплате.

    Я связывался вчера с jlcpcb. Мне просто написали, что проблема с "банками-партнёрами. ищем решение. сообщим Вам лично, как найдём решение". Я думаю, что они действительно найдут решение. Надо немного подождать.

  7. 2 minutes ago, Слесарь said:

    надо еще учитывать частоту тока

    Возможно. Мои иструктажи и сдача ЭБ связаны с 50 Гц. Ну я и сказал автору топика

    11 hours ago, haker_fox said:

    P.S. Если Вы собираетесь заниматься конструированием медтехники (может быть лучше не надо?), то тут надо не вопросы задавать, а потратить несколько месяцев на изучение литературы.

    Сейчас могу добавить: или нанять эксперта, хорошо ему заплатить, и послушать все нюансы, если читать не любишь и разбираться.

  8. 53 minutes ago, alexPec said:

    трансимпедансные усилители

    Моя тема! Недавно моделировал восьмидиапазонный трансимпедансник в Micro Cap 12 с переключением диапазонов и т.п. Всё хорошо моделируется.

  9. 15 hours ago, Turgenev said:

    Почему не говорят про напряжение?

    А зачем про него говорить, если "убивает" только ток? А ток зависит от сопротивления проводника (тела). Следовательно, напряжение можно найти из уравнения U = I * R.

    15 hours ago, Turgenev said:

    ведь 25мА при 1000 В точно не безопасны

    Небезопасны. Но здесь прослеживается натягивание совы на глобус в плане махания большими числами))) В электрошокере 80 кВ, а он не убивает (хочется надеяться на это). И не убивает лишь потому, что мощность, прикладываемая к резистору (тела) - ограничена током.

     

    Другими словами, если Вы возьмёте источник напряжения 100 кВ, но не способный выдать ток выше 1 мА, например, и приложите это напряжение к человеку, то он лишь почувствует сокращение мышц, своеобразный удар, но с огромной вероятностью останется жив.

     

    Но если Вы возьмёте литиевую батарейку на 3.3 В, которую чуть-ли не под язык можно положить, и приложите её напряжение к мышцам сердца через электроды, то последствия могут быть печальными по причине низкого сопротивления "сырых и голых" мышц, и относительно высокого тока, а также "ненужного" сокращения мышц этого сердца.

     

    Ну и да - очень многое зависит от состояния организма человека. По роду своей работы я каждый год сдаю экзамен по ЭБ на 3 группу (до и выше 1 кВ), езжу на инструктажи в различные подразделения, где нам рассказывают страшилки, которые произошли с работниками электросетей. Да, бывает, что после воздействия 6 кВ, приложенного к точками голова - ступня, человек хоть и получает страшные ожоги, но практически полностью восстанавливается и продолжает работать. То же самое бывает и при попадании под 110 кВ и даже чуть чаще, т.к. там более серьёзные защиты стоит по ЛЭП, в т.ч. при замыкании на землю.

     

    P.S. Если Вы собираетесь заниматься конструированием медтехники (может быть лучше не надо?), то тут надо не вопросы задавать, а потратить несколько месяцев на изучение литературы. Чтобы набрать багаж знаний, войти в эту тему, понять все причины и следствия. Тогда многие вопросы отпадут сами собой. А если Вы нахватаетесь вершков и конкретных ответов на конкретные вопросы - то будет печально, если всё-таки сконструируете свой аппарат.

  10. 12 hours ago, dimir said:

    Но ШИМ - не меандр.Зачача менять по частоте меандр.Шим может быть инструментом..

    Меандр - это частный случай ШИМ при скважности 50%. Если нужно менять частоту этого сигнала, то и тут какие могут быть проблемы? Насколько я помню, у таймеров есть предделитель PSC, меняя значение которого, можно изменять и частоту.

  11. 15 hours ago, alexPec said:

    Аналоговики, просвятите, что сейчас используют для таких целей

    Я сначала использую ручку пишущую и тетрадку. Накидываю идею. Насколько хватает знаний - считаю. Потом уже всё детально проверяю в Micro Cap 12 (он сейчас идёт даром, лицензия больше не нужна).

    Ну и давно говорится, что не столько хорошим должен быть симулятор, сколько хорошей должна быть модель. От качества модели зависит очень много. В том же Micro Cap я находил откровенно нерабочие модели, либо с ошибками.

    В случае, если моделируются источники питания (импульсные) всё становится немного сложнее. Тут нужно настройки симулятора оптимизировать под такие расчёты (в Micro Cap есть даже кнопки для такой конфигурации). В то же время LT Spice вроде бы справляется с такой работой без всякой настройки.

  12. 55 minutes ago, dimir said:

    Один в режиме PWM а другой управляет скважностью или как?

    Я, наверное, задам странный вопрос, но Вы документацию не читаете? Примеры не изучаете? Документация на микроконтроллеры STM32 очень качественная. Если из неё ничего не понятно, то можно посмотреть стандартные примеры. Режим ШИМ описан в подробностях для микроконтроллеров, начиная со времён PIC16Fxxx, продолжая AVR8 и т.д.

    Это не тот режим для которого могут возникнуть вопросы или каверзное поведение периферии. Хотя, исключать, конечно, этого нельзя.

  13. Да, действительно. Спасибо, коллеги. Что-то я затупил устал)

    Но всё же позволю себе немного больше, и уточню: а что-то в документации можно найти, чтобы получить 100% гарантированный ответ?

  14. Добрый день, коллеги!

     

    Не могу справиться сам в поиске ответа. Вернее, моё мнение есть, но есть и менение другого коллеги. Есть constexpr-функция

        constexpr Boot::version_type_t get() {
    
    
            constexpr char s_date[] = __DATE__; // always mmm dd yyyy
            constexpr char s_time[] = __TIME__; // always hh mm ss
    
    		// тут алгоритм вычисления версии прибора по макросам __DATE__ и __TIME__
    
            reuturn результат.
    
        }

    Тело функции расположено в заголовочном файле. Так вот, мой коллега утверждает, что значение функции будет вычислено и подставлено в качестве результата. И вызова функции не будет. Я проверил, так и есть. Но функции get() вызывается из разных единиц компиляции (*.cpp-файлов) и я подозреваю, что результат функции будет вычислен каждый раз в разный момент времени с разными значениями макросов __TIME__ и  __DATE__, что приведёт к различным версиям в различных частях ПО. Возможно, что вопрос очень простой, но я что-то не соображаю, как проверить, или что почитать. Банальная проверка нескольких листингов показала, что результат одинаковый, но это могло произойти по причине компиляции нескольких исходников за в течение времени меньшей секунды, т.е. без изменения макроса __TIME__. Но вообще, хотелось бы не экспериментов, а точного, документированного ответа.

  15. 1 hour ago, k155la3 said:

    Pre-build

    К сожалению, не всё так просто: в IAR эта комадна будет выполнена не всегда. Если проект уже собран без ошибкок, то последующий запуск компиляции не выполнит эту команду, ровно, как и саму компиляцию. Это отражено в документации, и я сам это недавно обнаружил, когда делал что-то подобное(

  16. Модератор: @KPG, прежде, чем советовать учить русский язык, покажите пример. Ваше сообщение полно ошибок: нет знаков препинания, предложения начинаются с маленькой буквы, нет тире и запятых. Освежите пункт правил форума 2.1.в.

    Также заканчиваем флейм в теме о судьбе предыдущего программиста. Пока скрываю сообщения. Скоро начну раздавать предупреждения.

  17. 1 minute ago, sunjob said:

    2-3 предложения? можно ссылки, ключ. слова...

    Я не понимаю, что Вам нужно, честное слово. Если нужны схемы и названия компонентов, то посмотрите отладочные платы на starterkit.ru, где есть Ethernet. Мы начинали с платы на базе микроконтроллера LPC4337. По поводу ПО я уже тоже всё сказал.

×
×
  • Создать...