Как оказалось дело даже не в volatile..ибо вернул удалённые куски и зависания вернулись, скорее всего компилятор просто иногда чудит с областями памяти, и что хош то и делай)
Давно сишечка стала языком высокого уровня ?! Особенно когда вы напрямую программируете железку, если я правильно понимаю. Боюсь с высокой долей вероятности это не компилятор чудит, а вы чего-то не понимаете в логике его работы. Почему я слышу много предположений и жалоб на судьбу, но не вижу открытого дебаггера, где и следует разрешать подобного рода непонятки ?
Возможно и не я, а библиотечные функции, та же файловая система fatfs ,но до того как добавил массив из 16 значений и начал к нему обращаться никаких проблем не было..
Сейчас мир настолько изменился, что Си можно условно считать ЯП низкого уровня. У меня тоже были ошибки, подобные этой. (обычно всё как раз наоборот из-за отсутствия volatile). Почти ни разу не приходилось расшифровывать в дизассемблере, всё находилось через Си и дебаггер. Очень понравилась среда Keil - в реальном времени можно смотреть/изменять вручную значения регистров и переменных.
здесь тоже всё это можно делать, и дебаггер показал что программа уходит в некий бесконечный цикл while(1), в системной папке, где прописано что если вы сюда попали значит произошла ошибка)...
Автор, я знаю причины по всей вашей работе и жизни, но вы никого кроме себя не слышите, вам скажи правду- вы посмеетесь. Только время вам поможет. Десятки лет .
автала в октябре закончилась, недавно была интересная вакансия тестовые стенды разрабатывать для юнитроникс, по телефону баба расспросила, мод как бы ты хотел работать-сказал хотел бы рано не вставать и работать из дома, но это в идеале..Вот что получил.. אלכסנדר ליפקוביץ' שלום רב,
בהמשך לראיון טלפוני שבוצע לך בתחום פיתוח מבדקים, פרטייך הועברו לעיון מנהל מגייס. לצערנו כרגע זה פחות תואם לפרופיל שהוא מחפש ולא נוכל להתקדם בתהליך. נשמח לפנות אליך בעתיד, במידה ותיווצר הזדמנות נוספת המתאימה להעסקתך בחברתנו. מאחלים לך הצלחה רבה בהמשך דרכך המקצועית.
я его раньше не использовал вообще, но потом начались фокусы со значениями переменных и после добавления во все глобальные переменные volatile стало нормально)
ты сам под своими сообщениями лайки ставишь?).за пайку дают меньше 10, плюс потеря квалификации плюс замораживание проекта плюс потом с авталы погонят на пайку потому что работал паяльщиком, а таких вакансий полно
Программист, что сказать. Потратил пол видео чтобы доказать что не работает. Сомнительно, но окэй. Вообще, если ты работаешь с прерываниями, или изменяешь переменную из разных потоков, то прямая логика "мы строчкой выше поставили a=0, то значит на следующй будет 0" не работат. Упрощай код, читай про volatile, ищи все места где используются прерывания, где есть запись из других потоков. Не разобрался, а уже ненавидеть язык стал, иш
Я не использую прерывания в программе над которой работаю, они не трогают те переменные, это проблема наложения данных при компиляции, возможно и из за какого-то моего косяка, но выяснить это крайне сложно и сам компилятро никак не предотвращает и не сигнализирует..О чём и речь.
@@AlexLipkovichГоворишь что не используешь прерывания и тут же - что они "не трогают те переменные". Ты уж определись... И при чём тут языки высокого уровня? Если бы ты намутил с памятью на ассемблере, у тебя были бы ровно те же проблемы, а то и похуже. И выше тебе абсолютно справедливо написали - ты вообще не понял про что volatile. И вообще твой код ужасен. Как по форме, так и по содержанию. В именах переменных и функций никакой структуры, никакого единого стиля, всё намешано в кучу. Неудивительно, что ты вообще не понимаешь что там виснет и почему. Учись программировать. Начни с азов.
@@zmey- ты читаешь невнимательно, не использую в программе над которой работаю, а работаю над функцией о которой рассказывал. Мой код для эффективности а не пример для студентов, тем более когда речь о поиске бага там вообще не про красоту
@@AlexLipkovich А я где-то писал про красоту? Кто из нас невнимательно читает? Речь не про красоту, речь про внятность. Твой код настолько же невнятен, как и твои комментарии.
что я ненавижу в программировании? таких "программистов" как ты! Column=0; if (Column==0xffff) { /* unreachable */ } дальше смотреть не стал, иди лучше кричи свободная касса
@@AlexLipkovich какой проблемы? что глобальная переменная Column после явного присваивания 0 на следующей же строке уже имеет значение ffff? в одном потоке это невозможно по определению, а значит успеть поменять ее значение может только другой поток, вот так просто без мутексов это жесть
Как оказалось дело даже не в volatile..ибо вернул удалённые куски и зависания вернулись, скорее всего компилятор просто иногда чудит с областями памяти, и что хош то и делай)
Добрый вечер Саша! Скажите, а что вы устроились на новую работу?
@@user-nm4sz8dq4n нет, это своё
Давно сишечка стала языком высокого уровня ?! Особенно когда вы напрямую программируете железку, если я правильно понимаю.
Боюсь с высокой долей вероятности это не компилятор чудит, а вы чего-то не понимаете в логике его работы. Почему я слышу много предположений и жалоб на судьбу, но не вижу открытого дебаггера, где и следует разрешать подобного рода непонятки ?
@@gobpblueex я уже нашёл причину, выложу про это
Очень интересный проект. Так получается, вы как радиолюбитель что-то для себя иногда паяете и программируете для души так сказать.
Как вариант, ты гробишь память в другом месте кода, а проявилось сдесь
Возможно и не я, а библиотечные функции, та же файловая система fatfs ,но до того как добавил массив из 16 значений и начал к нему обращаться никаких проблем не было..
Сейчас мир настолько изменился, что Си можно условно считать ЯП низкого уровня. У меня тоже были ошибки, подобные этой. (обычно всё как раз наоборот из-за отсутствия volatile). Почти ни разу не приходилось расшифровывать в дизассемблере, всё находилось через Си и дебаггер. Очень понравилась среда Keil - в реальном времени можно смотреть/изменять вручную значения регистров и переменных.
здесь тоже всё это можно делать, и дебаггер показал что программа уходит в некий бесконечный цикл while(1), в системной папке, где прописано что если вы сюда попали значит произошла ошибка)...
А вот я программировал раньше на си.
Автор, я знаю причины по всей вашей работе и жизни, но вы никого кроме себя не слышите, вам скажи правду- вы посмеетесь. Только время вам поможет. Десятки лет .
ну подскажите тогда как мне обойти зависание контроллера раз знаете
Причины ЧЕГО? Ты даже мысль свою толком выразить не способен, а уже претендуешь на какое-то знание.
че там с работой? есть еще автала?
автала в октябре закончилась, недавно была интересная вакансия тестовые стенды разрабатывать для юнитроникс, по телефону баба расспросила, мод как бы ты хотел работать-сказал хотел бы рано не вставать и работать из дома, но это в идеале..Вот что получил..
אלכסנדר ליפקוביץ' שלום רב,
בהמשך לראיון טלפוני שבוצע לך בתחום פיתוח מבדקים, פרטייך הועברו לעיון מנהל מגייס.
לצערנו כרגע זה פחות תואם לפרופיל שהוא מחפש ולא נוכל להתקדם בתהליך.
נשמח לפנות אליך בעתיד, במידה ותיווצר הזדמנות נוספת המתאימה להעסקתך בחברתנו.
מאחלים לך הצלחה רבה בהמשך דרכך המקצועית.
בברכה,
מש"א
@@AlexLipkovich давай на работу уже…харэ за мой счет жить 😂
@@ALEX86ZILBER что-то я забыл когда ты меня спонсировал
@@AlexLipkovich я налоги плачу грёбаной медине…значит и тебя спонсирую в какой то мере
@@ALEX86ZILBER я не дос и не коррупционер, с меня только берут
Прочитал, все сообщения...😅
🤔 На чужой ошибке не научился. Но мне кажется, автор позабыл назначение оптимизатора volotail!👀
я его раньше не использовал вообще, но потом начались фокусы со значениями переменных и после добавления во все глобальные переменные volatile стало нормально)
или паяй схемы за 15 k , не выеживайся…Славика на вас нету…
ты сам под своими сообщениями лайки ставишь?).за пайку дают меньше 10, плюс потеря квалификации плюс замораживание проекта плюс потом с авталы погонят на пайку потому что работал паяльщиком, а таких вакансий полно
@@AlexLipkovich ну не на прямую спонсирую…но налоги плачу…
@@ALEX86ZILBER так они идут на досов и коррупционеров твои налоги, как и мои
Программист, что сказать. Потратил пол видео чтобы доказать что не работает. Сомнительно, но окэй. Вообще, если ты работаешь с прерываниями, или изменяешь переменную из разных потоков, то прямая логика "мы строчкой выше поставили a=0, то значит на следующй будет 0" не работат. Упрощай код, читай про volatile, ищи все места где используются прерывания, где есть запись из других потоков. Не разобрался, а уже ненавидеть язык стал, иш
Я не использую прерывания в программе над которой работаю, они не трогают те переменные, это проблема наложения данных при компиляции, возможно и из за какого-то моего косяка, но выяснить это крайне сложно и сам компилятро никак не предотвращает и не сигнализирует..О чём и речь.
@@AlexLipkovichГоворишь что не используешь прерывания и тут же - что они "не трогают те переменные". Ты уж определись...
И при чём тут языки высокого уровня? Если бы ты намутил с памятью на ассемблере, у тебя были бы ровно те же проблемы, а то и похуже.
И выше тебе абсолютно справедливо написали - ты вообще не понял про что volatile. И вообще твой код ужасен. Как по форме, так и по содержанию. В именах переменных и функций никакой структуры, никакого единого стиля, всё намешано в кучу. Неудивительно, что ты вообще не понимаешь что там виснет и почему. Учись программировать. Начни с азов.
@@zmey- ты читаешь невнимательно, не использую в программе над которой работаю, а работаю над функцией о которой рассказывал. Мой код для эффективности а не пример для студентов, тем более когда речь о поиске бага там вообще не про красоту
@@AlexLipkovich А я где-то писал про красоту? Кто из нас невнимательно читает?
Речь не про красоту, речь про внятность. Твой код настолько же невнятен, как и твои комментарии.
@@zmey- это и считается красотой..и это не про рабочую версию
что я ненавижу в программировании? таких "программистов" как ты! Column=0; if (Column==0xffff) { /* unreachable */ } дальше смотреть не стал, иди лучше кричи свободная касса
Это специально для поиска проблемы, ты всегда сначала комментишь а потом смотришь о чём речь?
@@AlexLipkovich какой проблемы? что глобальная переменная Column после явного присваивания 0 на следующей же строке уже имеет значение ffff? в одном потоке это невозможно по определению, а значит успеть поменять ее значение может только другой поток, вот так просто без мутексов это жесть
@@user-hd3qb8bm2e невозможно это если всё работает как должно, а оно не всегда так
ВОТ КТО БАБУШЕК РАЗВОДИТ ПО ТЕЛЕФОНУ )))))))) НА БАБКИ
где смеяться
😕