Dog Pawlowa
Apr 6 2009, 14:54
Нужно подправить проект, который был моим первым на IAR, на 133 кристалле, лет пять назад.
Старый HEX работает, но результат компиляции версией 410 - нет.
Под отладкой это выглядит так - после разрешения прерывания контроллер входит в прерыванию по таймеру, при выходе из него - заходит опять, и никогда не выходит.
Если отпустить, и остановить, то стек переполнен, программа где-то болтается.
Другой, более сложный проект, под этим же ИАРом работает вполне успешно.
Синхронизация ядра от внутреннего генератора, таймер от часового кварца.
И что делать? Надеюсь на любой ответ...
а я до сих пор сижу на версии 3.30...
Если хотите быстро, не разбираясь, что в компиляторах изменилось, то лучше использовать ту версию, в которой создавали проект первоначально.
Dog Pawlowa
Apr 6 2009, 15:16
Цитата(VAI @ Apr 6 2009, 18:03)

лучше использовать ту версию, в которой создавали проект первоначально.
Да, наверное, только я столкнулся с тем, что система падает иногда, а старые версии уже не ставятся. Отматывать годы показалось как-то унизительно
Поборюсь денек...
rezident
Apr 6 2009, 22:23
Цитата(Dog Pawlowa @ Apr 6 2009, 20:54)

И что делать? Надеюсь на любой ответ...
Попробовать версию 4.20. Дебаггер в 4.10 весьма "падучий" сам по себе. Если результат использования 4.20 будет отрицательный, то попробовать еще с полностью выключенной оптимизацией. Если как-то это "поедет", то нужно начать разбираться с переменными и попытаться объяснить компилятору, где именно вы не хотите, чтобы он оптимизировал обращение к ним.
Напомню, что версии 4.10A и 4.11B не всегда корректно работают с volatile-переменными.
Цитата
Да, наверное, только я столкнулся с тем, что система падает иногда, а старые версии уже не ставятся.
Я использую WinXP Pro x64, на неё 3.30 и ставится, и работает на ура. Заливаю через BSL. Если уж очень хочется использовать LPT-шный MSPFET, то через VMware Workstation...
Просто проект постоянно находится в работе, часто требуются некоторые мелкие изменения... Попробовал как-то 4.10 на этом проекте, сразу не пошла, "ну и хрен с ним" - решил. Новые проекты делаем на STM32.
Dog Pawlowa
Apr 8 2009, 06:16
Спасибо за советы и информацию.
С основной ошибкой разобрался, она из серии - "как оно вообще могло работать?!". Причина похоже в разной обработке __no_init volatile, но упрекнуть 4.10 не за что - моя явная ошибка, при определенном значении неинициализируемой переменной получался бесконечный цикл. Разбираться не буду.
Впрочем, до конца проект не запустил, но шансы есть, терминал работает.
Шок от поведения программы под MSP-ным отладчиком вызван свободным полетом периферии, который я подзабыл (особенно после отладчиков AVR и ARM) и, возможно, проявления усугубились в этой версии отладчика. Такое впечатление, что, если прерывания идут часто, то остановиться вне прерывания невозможно. Переход на 4.20 запланировал.
Ну и на STM32 тоже перехожу потихоньку...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.