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

tonyk_av

Участник
  • Постов

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

  • Посещение

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

    4

Весь контент tonyk_av


  1. Да ну! Пробовал? Нет? Думаю, что компилятор быстро объяснит, что С и С++ отличаются синтаксисом, из-за чего откажется компилировать тупо переименованные файлы.
  2. Для сравнения: 4 слоя, дорожки 0.125, зазор 0.125, отверстия 0.3.
  3. Масса измеряется в граммах, а миллилитрах измеряется объём. Не нужно их путать. Не часто встречаются такие чётко сформулированные хотелки, даже почитать стало интересно.
  4. Отсюда. Там без туевой хучи сертификатов и лицензий делать нечего. Плюс вносить в рабочие процессы поправки на реалии сегодняшней действительности, видимо, не хотят, посему заслуженная оценка их как работодателя.
  5. У них много вакансий с такой з/п. Только вот, действительно, давно ищут. Может, что-то не то в конторе? Я не иду туда из-за неудобного месторасположения офиса и жуткой заформализованности работы. И сильная текучка кадров настораживает.
  6. Всем привет! Мозг кипит, прошу помощь зала. Ситуация: есть байт в массиве байтов. С битами этого байта работают разные методы разных классов. Синхронизацию доступа перепроверил. Но один бит кто-то меняет. В Кубе вижу точку останова при изменении данных (если я правильно понимаю это окошко). Вопрос: куда и что следует прописать, чтобы выловить адрес в программе, из которого изменяется этот бит? Глазами ошибку не вижу, нужно локализовать место с ошибочным кодом хотя бы до метода класса.
  7. Так и есть. Я один и тот же вопрос от этого ivan dimir вижу на многих сайтах. У него подход к делу такой: прикинуться шлангом, выложить какой-нибудь бред, а потом ждать, пока грамотные челы ему всё разжуют и напишут. При этом он сам даже напрягаться не хочет, чтобы изучить теорию. Поэтому я удивляюсь, что многие до сих пор ведутся и тратят на него своё время.
  8. Когда-то это всё делалось в xls-файлике от STM, а щас раздулось до монструозного Куба с его ХАЛом.
  9. Напишите индусам о своих желаниях. Возможно, они снизойдут до их воплощения. Они уже много лет не исправляют ошибки в ХАЛе. Есть целые сайты с этим, поищите на досуге. Всё, что можно сделать малой кровью, это извлечь из стэка адрес, с которого вызвали Error_Handler(), чтобы в дизассме посмотреть адрес. Ну и __LINE__, __FILE__ и __func__ в помощь.
  10. А можно как-то с терминологией определиться? Есть ведь общеупотребительная терминология. Вы, похоже, сами запутались. Есть прерывания процессора. Есть приоритет прерывания планировщика ОС. Отсюда и танцуйте. Исходя из свои представлений, у себя в программе я сделал так: //-------------------------------------------------------------------------- // Настраиваемм приоритеты прерываний. NVIC_t *nvic = NVIC_t::getInstance(); // Настраиваем все 4 приоритетных бита на PreemptPriority бит // и ни один из них на SubPriority бит. Это означает, что прерывание с более // высоким приоритетом, имеющее меньший номер, будет перебивать прерывание // с меньшим приоритетом, имеющее бОльший номер. nvic -> setPriorityGrouping( NVIC_PRIORITYGROUP_4 ); // Устанавливает для планировщика, вызываемого из SysTick, самый низкий // приоритет. nvic -> setPriority( SysTick_IRQn, configLIBRARY_LOWEST_INTERRUPT_PRIORITY ); // Учитывая настройки в "FreeRTOSConfig.h", получаем, что в обработчиках // прерываний с приоритетом 15..5 можно вызывать функции с суфиксом FromISR, // а в обработчиках с приоритетом 4..0- нельзя! Попутно тут же задам вопрос по поводу назначения приоритетов для самой ОС. Меня смущает вот что: const intfunc __vector_table[] __attribute__ ( ( section (".isr_vector_FLASH" ), used ) ) = { (intfunc)&_estack , &Reset_Handler, &NMI_Handler, &HardFault_Handler, &MemManage_Handler, &BusFault_Handler, &UsageFault_Handler, &Default_Handler, &Default_Handler, &Default_Handler, &Default_Handler, &vPortSVCHandler, &DebugMon_Handler, &Default_Handler, &xPortPendSVHandler, //<<<<<<<<<<< &xPortSysTickHandler, //<<<<<<<<<<< .... Как правильно задать наименьший приоритет для планировщика? Вопрос связан с тем, в прерывании от систика возбуждается прерывание для обслуживания планировщика. Поясните, пожалуйста, этот нюанс.
  11. Вот именно, на это я и намекал. Поэтому толку от переписывания библиотечной функции будет ровно ноль. Вроде, как раз у ИАР есть опция компилятора, позволяющая изменять типы данных, используемые по умолчанию, то есть он будет вместо double передавать float.
  12. А чем ваш printf() будет отличаться от библиотечного в части работы с числами с плавающей запятой? Понимает, на что я намекаю?
  13. Тут пробовали отключать? Или использовать -diag_suppress Pa205
  14. На сайте ИАР есть руководство по переезду с 8 на 9 и там есть упоминание об использовании. float и double. У меня провайдер блокирует VPN, поэтому я не могу прочитать об этом. В ГЦЦ есть предупреждения о таком преобразовании. Активность зависит от версии стандарта языка и, видимо, сборки компилятора.
  15. Настройки компилятора смотрели? Их там много. Скорей всего, по умолчанию этот варнинг теперь разрешен. Если не указан суффикс "f" после числа с плавающей точкой, то компилятор использует его как double. Посмотрите на код в этой строчке: float pi = 3.14; Там будет приведение дабла к флоат с последующим присвоением. Поэтому при разрешённом варнинге на приведения типов компилятор справедливо ругается на эту строку: sprintf(str, "%f", pi);
  16. У меня тоже не было, пока включал дома и в офисе. У меня проблем нет. Есть специфика настройки конкретных маршрутизаторов на конкретном предприятии. Я не вникал, зачем тут сделана блокировка устройств с такими МАС, но смысл этих бит как бы намекает, что пакеты с МАС-адресами, в которых они установлены, могут блокироваться. Поэтому столкнувшись, с тем, что часть плат не видна за пределами помещения, где я их проверял, стал смотреть эти биты.
  17. Тут ещё нюанс вылез после включения в заводскую сеть. Отмеченные биты должны быть равны нулю, иначе коммутаторы не пропускают пакеты дальше, в МАС-адресах которых в этих позициях единицы. Во всяком случае, такие настройки в местной сети.
  18. Надеюсь, за выходные он сам их забудет. Там всё на Выньде и Сименсе, поэтому лучше не трогать. Воспользовался вот этим. В общем, проблема со странным поведение двух W5500 решилась просто. Я в обе прошивки сдуру записал одинаковый МАС, вот они и фиговничали. Дописал загрузку МАС из конфигурационного файла, чтобы его можно было менять без перепрошивки- и всё заработало. Ессно, МАС теперь в конфигах разные. Благодарю всех ответивших!
  19. Или через yeild(). В таком случае размер тика становится не принципиальным.
  20. С него и начинал. Все бы так и делали. А как гарантировать уникальность адреса даже внутри локальной сети? Получается, что только покупка диапазона гарантирует уникальность адреса. Теплилась надежда, что где-то собираются МАС старых девайсов, которые используются в таких генераторах, пусть и не очень законно.
  21. Нашёл. Буду пробовать. А где-как-откуда они берут адреса? Не получули я в дальнейшем повторы адресов?
  22. А какие МАС можно задавать? Я вот тупо изменил в МАС один бит, а можно ли так было делать? Начальный МАС взял из какого-то примера работы с 5500.
×
×
  • Создать...