ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
367650 Топик полностью
vmp (11.11.2012 10:11, просмотров: 53) ответил __NC__ на Я думаю Вы правы. Начал разбираться после вашего указания. Оказывается LX51 линкeр использует еще виртуальный стек во внешней памяти.Не подскажите как четко отдистиллировать дефект. Крайне необходимо указать заказчику абсолютную причину
Эта функция вызывается только из прерывания или из основной программы тоже? Если из двух мест, то надо делать либо две разных функции, либо объявлять ее реентерабельной (в документации написано как). А вообще-то у Кейла-51 это такая фича - компилированный стек в памяти. Дело в том, что в наборе команд MCS-51 отсутствуют эффективные методы работы с переменными на стеке. Поэтому компилятор заранее выделяет в ОЗУ ячейки для передачи параметров в функцию. Если функция вызывается рекурсивно или из основной программы и прерывания, то эта память затирается вложенным вызовом.