-
- А не может ли это быть связано с "наползанием" стека на область глобальных переменных? Попробуйте обойтись без вызова функции, встроив ее непосредственно в тело обработчика прерывания. - rezident(10.11.2012 16:09)
- Когда я порбую дизассемблировать код я вижу что стек находится в IDATA. Может стек или его часть находится в PDATA ? - __NC__(10.11.2012 16:24, )
- Я не очень хорошо знаком с кейлом. Про какой конкретно 51-й кристалл идет речь? - rezident(10.11.2012 17:13)
- Я думаю Вы правы. Начал разбираться после вашего указания. Оказывается LX51 линкeр использует еще виртуальный стек во внешней памяти.Не подскажите как четко отдистиллировать дефект. Крайне необходимо указать заказчику абсолютную причину __NC__(62 знак., 10.11.2012 17:30, )
- Эта функция вызывается только из прерывания или из основной программы тоже? Если из двух мест, то надо делать либо две разных функции, либо объявлять ее реентерабельной (в документации написано как). А вообще-то у Кейла-51 это такая фича - vmp(336 знак., 11.11.2012 10:11)
- В опциях линкера есть возможность создания map-файла. После компиляции посмотрите его содержимое. В map-файле указаны имена функций, их зависимости, вызовы, данные и их размеры. - rezident(10.11.2012 21:54)
- Я думаю Вы правы. Начал разбираться после вашего указания. Оказывается LX51 линкeр использует еще виртуальный стек во внешней памяти.Не подскажите как четко отдистиллировать дефект. Крайне необходимо указать заказчику абсолютную причину __NC__(62 знак., 10.11.2012 17:30, )
- Я не очень хорошо знаком с кейлом. Про какой конкретно 51-й кристалл идет речь? - rezident(10.11.2012 17:13)
- Когда я порбую дизассемблировать код я вижу что стек находится в IDATA. Может стек или его часть находится в PDATA ? - __NC__(10.11.2012 16:24, )
- А не может ли это быть связано с "наползанием" стека на область глобальных переменных? Попробуйте обойтись без вызова функции, встроив ее непосредственно в тело обработчика прерывания. - rezident(10.11.2012 16:09)