Балахна De_User(22.12.2019 08:04, Off, полностью)
dsPIC33EP256MU806 + PICKit4 + asm ("reset") = подвисание дебаггера. Как это победить? RxTx(415 знак., 19.12.2019 21:13, PIC, полностью)
- Разобрался. На форуме Microchip подсказали трюк - сбрасывать самому через меню Debugger->Reset. RxTx(147 знак., 20.12.2019 01:13)
- А почему не пойти по цивилизованному пути и убрать ресет, заменив его выходом в верхушку main-а? my504(254 знак., 20.12.2019 17:38)
- А я это попытался сделать первым же делом. RxTx(2645 знак., 21.12.2019 15:40 - 15:57)
- Имхо по цивилизованному пути - это когда ресет только во всяких трапах, после записи "Караул!!!" в лог. А переход на верхушку main - еще более лютая дичь, чем использование ресета в процессе нормальной работы. - ant333(21.12.2019 00:05)
- Нельзя на верхушку мэйна. Люди уже попадались. То периферия не так зависла, то ещё что. Там, где есть в наборе инструкций настоящий сброс, грех им не воспользоваться. Там, где нет, у людей доходило до внешней схемы сброса по дёрганью вывода из Nikolay_Po(11 знак., 20.12.2019 18:06)
- Некоторые регистеры после сброса должны встать в спеццыально оговоренную позу. - mse homjak(20.12.2019 17:57)
- Специально оговоренные позы регистров нужно дублировать в начале исполнения. Тогда и не будет никакой дичи в верхушке мэйна. my504(339 знак., 21.12.2019 08:12 - 09:50)MBedder
- Тоже так считаю. Однако наблюдаю не первый проект, когда на любой чих делают просто полный системный reset, еще и заводя пин сброса на порт. - RxTx(21.12.2019 16:06)
- Я как-то пробовал продублировать специальные регистры в начале исполнения. Оказалось, очень много периферии теоретически может влиять на используемые порты и если её нужно явно инициализировать, это несколько страниц кода. Nikolay_Po(231 знак., 21.12.2019 15:05)
- Это лучшее из зол - перевести систему в заранее определённое состояние. Причом, практически, мгновенно, в отличие от шебуршения через МАЙН. Худшее из зол, это, например, зависнуть и оставить силовые ключи в статическом состоянии, на время, пока mse homjak(530 знак., 21.12.2019 12:28 - 12:31)
- Вы, милостивый государь, несете ахинею. Речь идет не об абстрактном МК, а о вполне конкретной архитектуре, где нет никаких 100500 СФР, среди которых, к тому же, реально применяются с полсотни или около того. Это во-первых. А во вторых, нужно иметь my504(726 знак., 21.12.2019 13:38 - 14:16)
- Чот не пойму, чо вы митингуете? Если у вас конкретная архитектура и конкретная задача, делайте что хотите. У нас свободная страна, есличо. И если обработка экцепшына не повлияет на катастрофичность последствий сбоя, то раздумывайте скока угодно, mse homjak(187 знак., 21.12.2019 14:25)
- Случайных сбросов НЕ БЫВАЕТ. Все сбросы имеют ПРИЧИНУ. В силовом оборудовании проблема сброса состоит в необходимости утилизации запасенной в реактивной нагрузке энергии. Поэтому организовывать сброс лишь потому, что не понимаешь что делать с my504(30 знак., 21.12.2019 14:49)
- А что можно сделать с зависанием? Пока вочдог не дёрнет НМИ, никто не знает, чем занимался процессор ,по каким переменным он скакал и чего в них ложил. Но если у вас есть память трека на 100500шагов, тоды ой! Запасённая энергия должна уйти в mse homjak(457 знак., 21.12.2019 19:32)
- Может, и не слишком умно. Но раз в конкретной системе уже давно реализовано - значит можно. Не нужно воображать себя богом и думать, что можешь предусмотреть всё в main() и исключениях. Nikolay_Po(422 знак., 21.12.2019 15:01 - 15:07)
- А запланированые бывают?) Как выше заметили, аппаратный сброс мгновенно приводит систему в детерминированное состояние, а после этого можно и сопли пожевать, для этого есть RCON, сами же написали - ant333(21.12.2019 15:01)
- Вот кто бы сказал, pic24/33 работает таки аппаратно, или как у армов есть скрытый бутлоадер стартующий до основной прошивки (и именно он взаимодействует с программатором). - fk0(20.12.2019 01:25)
- Емнип когда-то сталкивался с таким, подробностей не помню, кажется pic18 с icd2. И с собакой так же вроде. Поставить бряк перед ресетом и сбрасывать вручную не вариант? - ant333(20.12.2019 00:35 - 00:38)
- Попробовать другой отладчик, PICKi3, например. Запрос в техподдержку написать. Похоже, они такого случая просто не предусмотрели. Сыроват инструмент... - Nikolay_Po(19.12.2019 22:18)
Умеющим HART. Где взять коды единиц измерения (units code)? И классификацию типов устройств(manufacturer's device type code), и заодно "manufacturer identification code" - IBAH(17.12.2019 00:29, dao, полностью)
Лагунову про "разгон" учредительного собрания. Ви опять "господин соврамши" - Codavr(18.12.2019 21:08, Off, youtube, полностью)
Посоветуйте, как быстрее пару-тройку простейших виртуальных машин c Win7 / WinXP и браузером cделать? - De_User(21.12.2019 03:21 - 04:47, Off, полностью)
Народ, в чем проще нарисовать импульсную последовательность. Надо фпгашникам техзадание нарисовать. Что то типа как в даташитах. Например spi протокол. Просто дохрена выходов засинхронизировано на клок, я запарюсь в графредакторе ваять. - danuna(19.12.2019 15:12, dao, полностью)
Может кто объяснит, чем руководствуется компилятор когда вставляет функцию как инлайн, а когда вызов? Вот сравнение _Constantin24(466 знак., 19.12.2019 07:46, dao, полностью)
Кто как делает спецификацию на разъем, который покупается отдельно из ленты контактов, кожуха и собственно самого разъема? Делаем отдельный сборочный чертеж на разъем или можно как то проще без чертежа? - Make_Pic(17.12.2019 12:33, SCH, полностью)
Уважаемые сэры,посоветуйте пожалуйста методику выбора номинала плавкого предохранителя для устройства, питающегося от импульсного блока питания (флайбэк на TOP258) - Rainman62(03.12.2019 20:31, SCH, полностью)
Нужно проверять работу неких небольших алгоритмов на голом С++ под WIN7, что лучше использовать для этого (редактор/компилятор легковесный, возможно portable)? - Make_Pic(01.11.2019 11:24, dao, полностью)
"Инцидент никак нихуя не повлияет на сроки ремонта корабля" :)) --> - MBedder(18.12.2019 23:42, zen, ссылка, полностью)
Изучил срач по ссылке. Подкину дохлую кошку (см.ссылку "картинка"): "На 1000 строк исходного кода открытых программ насчитывается 1 дефект". Подобное исследование было и у НАСА (лень искать). Собственно вопрос - надежней ли банальный релейный Chum_A(714 знак., 14.12.2019 16:15, dao, ссылка, ссылка, полностью)
- аффтар снёс топик со срачем. как обычно. - Vit(15.12.2019 02:30, youtube)
- А какого хера он снёс _чужие_ сообщения? - fk0(15.12.2019 13:36)
- Ковыряйтесь =AlexD=(26409 знак., 15.12.2019 20:05)
- Опостылил этот "seryy" своим нетрадиционным поведением. Может на неделю-другую ему помочь - сразу перемещать его сообщения в мусорку? - De_User(15.12.2019 17:38)
- Кирюша, ты про свои сообщения, скорее всего, печешься? Заведи свою тему по плюсам, будем в ней обмениваться опытом, крестоёбить. :)))) И никто не снесет и тема в твоих руках. В основном, конечно, я бы послушал. Век, знаете ли, живи, век учись. - RxTx(15.12.2019 14:38)
- Машенька, сними буденновку и открой, наконец, для себя "Always" - со сносимым постом автоматически
сношаются сносятся и все ответы, о чем русским по белому выдается предупреждение сношающему :)) MBedder(15.12.2019 13:44 - 13:47)
- Пока нет реальной информации о "дефектах", всё это вилами на воде писано. RxTx(197 знак., 14.12.2019 23:29)
- По поводу реле и дефектов. misyachniy(1319 знак., 14.12.2019 23:07)
- На 1000 строк? Я считал раз в 20 больше. Это уже после тщательного тестирования остаётся столько. Ну я по ссылке и написал, что множество слоёв абстракций привносят множество проблем. И более простая система может оказаться более надёжной. Но не fk0(388 знак., 14.12.2019 20:54)
- А чтотговорит linting? Хаос(86 знак., 14.12.2019 16:41,
)
Пятница же. Обычный день в России (буржуинское издание) --> - SciFi(20.12.2019 10:58, Off, ссылка, полностью)
Хохлизм (лебарализм?) головного мозга... POV_(768 знак., 20.12.2019 00:20,
, Off, полностью)
- Не уподобляйся тамошним нацикам, будь над этим. Летом якась гарна дивчина прошлась по Тверской и Красной площади с жовтоблакитним прапором и очень обиделась на то, что ее никто не побил, не скрутил и т.д., а наоборот - приветствовали и MBedder(10 знак., 20.12.2019 01:36)
- Может молодого человека Славой звали, подруга ему говорила "Слава хватит тебе, Слава их [буквы] украли", а вы не расслышали? :-) - Boвa(20.12.2019 00:27 - 00:30)
- Что это было не знаю, а что у тебя вата головного мозга не сомневаюсь. Ну зарядил бы ты ему в харю, ну получил бы
условный срок, судимость, отсутствие нормальной работы и всё такое прочее. А может так и нужно было? - fk0(20.12.2019 00:28)
Писал три месяца проект, писал.. тот внезапно перестал работать.... POV_(208 знак., 06.12.2019 09:42,
, MCU, полностью)
- В функции RxTx(554 знак., 08.12.2019 00:29)
- Что за ересь?! С чего бы у меня был использован один и тот же буфер?.. POV_(70 знак., 08.12.2019 11:49,
)
- "buffer у тебя глобальная переменная" - Где? - VLLV(08.12.2019 08:23)
- Беда, коль пироги начнет печи сапожник, Ruslan(290 знак., 08.12.2019 07:31)
- спасибо! ТС так и вылечил -> - Evgeny_CD(08.12.2019 00:46, ссылка)
- Мне показалось он "вылечил", а сделал перестановку кроватей. ;-) - RxTx(08.12.2019 00:56)
- Мне кажется, что суть этого важного глюка до нас еще толком не дошла. Evgeny_CD(82 знак., 08.12.2019 01:51)
- "Важный глюк" - фантазия. "Многопоточность может случиться в однопоточной системе" - заблужение. "Очень поучительно" - фантазия. Молодец, возьми с полки пирожок. - SciFi(08.12.2019 11:20)
- Нет ли тут интересного... POV_(73 знак., 09.12.2019 11:53,
)
- Вызов вложенной функции - всего лишь несколько байт стека. - VLLV(09.12.2019 12:16)
- А вызов одной и той же функции в иерархии вызовов несколько раз - многопоточность в однопоточном приложении. И если эта функция не реентерабельна, то вылет. - Evgeny_CD(09.12.2019 14:12)
- Ну ты же понял что там происходит. sprintf() ожидает что её %s параметр (его char* буфер) имеет ожидаемую ей длину. RxTx(655 знак., 09.12.2019 16:10)
- Вы все обкуренные и не лечитесь. Невозможно устроить рекурсивный вызов sprintf(). По буквам: николай, елена, владимир, олег, зинаида, михаил, ольга, жозефина, нина, оксана. Как этот простой факт ускользает от здешней публики - для меня загадка. - SciFi(09.12.2019 14:17)
- попробуйте выровнять буфер на 8 байт(aligned(8)). Было что то подобное. - Mikla(06.12.2019 17:46)
- Когда я вижу без ошибок написанную нереентрантную функцию, на которую жалуются "что-то странно она себя ведет", то сразу возникает вопрос: откуда она у тебя вызывается? Если из разных потоков и обработчиков - то буратино найден :-) - il-2(06.12.2019 14:30)
- Может, не в тему. Всегда (если в библиотеке есть) вместо sprintf использую snprintf. От переполнений стека, правда, это не спасает. - Сидоргек(06.12.2019 11:26)
- sprintf может валить прогу, если 1) аргументы не соответствуют строке формата (в частности опасно использование "%n"), 2) нижележащие функции, через которые printf (без s) печатает, вызывают ошибку, 3) если это sprintf и переполняется буфер... fk0(2051 знак., 06.12.2019 10:50)
- Зачетно , местами гениально! - PlainUser(09.12.2019 15:25)
- +100500 за valgrind. При компиляции в режиме отладки утилита показывает стек вызовов с именами функций и номерами строк. Уйму блох отловил этим полезным инструментом. - =AlexD=(06.12.2019 11:58)
- Варнинги проверял, snprintf пробовал, строку подставлял фиксированную без параметров. Валится всегда в одном и том же месте. Ниже я описал где... POV_(23 знак., 06.12.2019 11:41,
)
- Спасибо! Душевно. - Evgeny_CD(06.12.2019 11:06)
- Вдогонку, в embedded ещё встречаются проблемы с распечаткой чисел с плавающей точкой -- в процессоре может не быть fpu, а в библиотеке используется, или наоборот и разный ABI (call convention), если библиотеки какие-то экзотические, то могут плохо fk0(34 знак., 06.12.2019 10:54)
- Опытные товарищи берут в зубы отладчик и ищут косяк. - SciFi(06.12.2019 09:46)
- Так оно уходит в никуда при пошаговой работе. Соседние строчки с тем же sprintf норм работают. - POV_(06.12.2019 09:49,
)
- Чехарда в адресной арифметике ? К примеру: Есть массив из 10 элементов, а делается запись в 11-ый. Результат: затёрта память в соседней переменой. "Чудный" результат. Был обнаружен при смене компилятора (или по другому выполнял линковку). - Zoro(06.12.2019 10:42)
- Не, такого что нет. А вот что есть... POV_(228 знак., 06.12.2019 11:39,
)
- default может добавить? в Винавр помогало。 - Symbions(06.12.2019 13:24)
- В дизассемблере по шагам пройдись. Указатель стека проверь. - SciFi(06.12.2019 11:48)
- В общем сам "дурак", дал шанс компилятору при оптимизации повертеть меня на херу... POV_(534 знак., 06.12.2019 15:11,
)
- Основной вопрос в этом коде - это где хранится результат внутренних sprintf после возвращения из функции psu_GetField. Ведь переменным bb присваиваются указатели на некий буфер. Если это глобальный буфер, то последовательные вызовы psu_GetField PSP(148 знак., 08.12.2019 20:28)
- Проблема при вложенности функций указывает в первую очередь на проблему со стеком. - VLLV(07.12.2019 05:00)
- А внутри psu_GetField, когда вызывается sprintf, он печатает случайно не в ту же статическую переменную, в которую печать происходит в той функции, где глюки были обнаружены? Тогда чего же ты хочешь? snprintf начинает читать из буфера и fk0(771 знак., 06.12.2019 20:21)
- есть у меня подозрения, что либа со спринтфом настолько "однопоточная", что там даже просто для sprintfa используется какая-нить static переменная, в которой, например, хранится счётчик выведенных байт. в итоге при вложении спринтфов вложеннные Mahagam(128 знак., 07.12.2019 12:36)
- Нет, там массив "строк". А именно 5 штук. И вызывается не более 3 за раз... POV_(115 знак., 07.12.2019 02:05,
)
- Но почему при присваивании возвращаемых psu_GetField значений временным переменным эффект пропал? Хотя вопрос, откуда psu_GetField берёт буфер для sprintf, весьма уместен. - йцукен(06.12.2019 22:07)
- Может и туплю, но как именно это объясняет глюки? - SciFi(06.12.2019 15:19)
- Это уж в понедельник. Пройдусь по асму. - POV_(06.12.2019 13:34,
)
- а мне тут говорили, как крут gcc, все предупреждения. Ни фига он не умеет против погроммиста) - VLLV(06.12.2019 11:55)
- Придется, но ассемблер егойный не знаю, читать придется. - POV_(06.12.2019 11:54,
)
- Это частный случай "неопределённого поведения". В таких случаях gcc временами делает такое, что глаза на лоб лезут. А что? Имеет право. - SciFi(06.12.2019 10:48)
- Такая ерунда не может остановить опытных товарищей. - SciFi(06.12.2019 09:52)
- Стек кончился? - ASDFS(06.12.2019 09:52)