-
- В дебаггере хожу ПО ШАГАМ! Для самых умных добавлю - специально в функции убрал обращения не к volatile - все обращения к SFR, ну и вот к дамми-переменной пришлось
добавлять, чтобы увидеть, что IDE - таки ГОВНО. Что, где и когда
должно тасоваться? Какая б@#$ь мне не хочет показывать SFR? Кстати,
в хедерах так и не нашёл, где объявлены регистры, а не битовые
структуры. Типа интринсик гуано в компиляторе зарыто. может оно там
и не volatile? Хотя что со Vit(40 знак., 27.12.2020 21:03)
- Да хоть на голове ходи! Или компилируй без оптимизации с -O0, или
порядок обращения с volatile-переменным и SFR-регистрам может
отличаться от порядка обращения к другим переменным и не совпадать
со строчками кода. Я не про конкретную IDE и компилятор, а вообще.
Просто, чтоб напомнить, что компилятор вправе иметь свой взгляд на
последовательность инструкций. Естесственным барьером является
вызов функции: перед вызовом, или в конце функции, точно всё
сделается, что должно было fk0(13 знак., 27.12.2020 23:50)
- Я понял, что ты вааще. Тут же трабла не в неправильном порядке
выполнения, а в том, что IDE не обновляет окошко с SFR-ами. Точнее,
с рандомной паузой таки может. Почему спросил о нативных барьерах
(функции компилер тоже может заинлайнить) - не со всеми регистрами
одинаково хреново. Есть предположение, что связано с тем, что
таймер MCCP в асинхронном режиме и тактируется от генератора
часового кварца, ну а дальше всякие фризы, характерные для дебага
могут быть. Аналогичные Vit(86 знак., 28.12.2020 00:10)
- Если открыто окно с дампом достаточно большого участка памяти, то
виснет на время считывания этого участка. Помню сталкивался с
чем-то таким. После этого дампом памяти пользовался в режиме
открыл-закрыл, и только если очень надо. - AlexBi(28.12.2020 11:59)
- Красавцы сами все SFR в одно окно засунули. - Vit(29.12.2020 01:21)
- Если открыто окно с дампом достаточно большого участка памяти, то
виснет на время считывания этого участка. Помню сталкивался с
чем-то таким. После этого дампом памяти пользовался в режиме
открыл-закрыл, и только если очень надо. - AlexBi(28.12.2020 11:59)
- Я понял, что ты вааще. Тут же трабла не в неправильном порядке
выполнения, а в том, что IDE не обновляет окошко с SFR-ами. Точнее,
с рандомной паузой таки может. Почему спросил о нативных барьерах
(функции компилер тоже может заинлайнить) - не со всеми регистрами
одинаково хреново. Есть предположение, что связано с тем, что
таймер MCCP в асинхронном режиме и тактируется от генератора
часового кварца, ну а дальше всякие фризы, характерные для дебага
могут быть. Аналогичные Vit(86 знак., 28.12.2020 00:10)
- Да хоть на голове ходи! Или компилируй без оптимизации с -O0, или
порядок обращения с volatile-переменным и SFR-регистрам может
отличаться от порядка обращения к другим переменным и не совпадать
со строчками кода. Я не про конкретную IDE и компилятор, а вообще.
Просто, чтоб напомнить, что компилятор вправе иметь свой взгляд на
последовательность инструкций. Естесственным барьером является
вызов функции: перед вызовом, или в конце функции, точно всё
сделается, что должно было fk0(13 знак., 27.12.2020 23:50)
- Порядок обращений к volatile переставлять не имеет права. Такшта не в тему >>> - SciFi(27.12.2020 20:36, ссылка)
- В дебаггере хожу ПО ШАГАМ! Для самых умных добавлю - специально в функции убрал обращения не к volatile - все обращения к SFR, ну и вот к дамми-переменной пришлось
добавлять, чтобы увидеть, что IDE - таки ГОВНО. Что, где и когда
должно тасоваться? Какая б@#$ь мне не хочет показывать SFR? Кстати,
в хедерах так и не нашёл, где объявлены регистры, а не битовые
структуры. Типа интринсик гуано в компиляторе зарыто. может оно там
и не volatile? Хотя что со Vit(40 знак., 27.12.2020 21:03)