[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Начал писать прогу для HC12. С использованием ОС CREX из пакета Introl.
Для начала завел два процесса, в каждом дергаю ножкой. Заливаю. Виснет намертво.
Симулирую пошагово. В момент переключения задач адрес следующей задачи берется из ячейки 0х0000. А там состояние портов. Пришел к выводу, что они на стек не тот регистр клали/снимали. А нужный при этом портился. Исправил, заработало. А это уже не первая версия компилятора. Посмотрел в старой - то же самое. Посмотрел тот же файл для НС11 - там сохраняется правильный регистр. А ведь тоже в демке используется. А когда в IARе для 430 ошибку в симуляторе и библиотеках нашли через несколько лет после выхода в свет. Полный printf в симуляторе работал, а в кристалле - нет. Тоже на адрес 0000 улетал.
И о шаманстве - у коллеги на соседнем столе тот же CREX в похожем приборе работает. Он долго смотрел на это место, согласился, что там у них ошибка, прошивали в его прибор и исправленный вариант и старый - работает и все!
А вы говорите... О сюжет!
E-mail: info@telesys.ru