реклама на сайте
подробности

 
 
> uVision3 simulator, При отладке Keil не показывает включенные файлы
Ytrnj
сообщение Mar 20 2007, 13:11
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 21-12-06
Из: Питер
Пользователь №: 23 756



Есть вопрос к знатокам uVision (8.05).

При отладке проги в Кейловском симуляторе, он упорно игнорирует включенные файлы.
То есть при переходе на функцию описанную во включенном файле, в окне дизассемблера
вместе с правильным ассемблерным кодом
отображаются соответствующие по номеру строки из главного файла.

Облазил весь uVision, но ничего не нашел.

В ИАРе таких проблем не было.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DimG
сообщение Apr 12 2007, 05:16
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 70
Регистрация: 4-04-06
Из: г. Омск
Пользователь №: 15 777



Не очень понял вашу проблему. Лично у меня никаких проблем с этим не возникало. Правда я в 2-м делал.
Вот книжечка по кейловскому компилятору, может чем поможет.Прикрепленный файл  c51primer.pdf ( 305.63 килобайт ) Кол-во скачиваний: 870

Если ничего не прояснится, интересно было бы глянуть на проект.
Go to the top of the page
 
+Quote Post
Ytrnj
сообщение Apr 12 2007, 12:46
Сообщение #3





Группа: Участник
Сообщений: 10
Регистрация: 21-12-06
Из: Питер
Пользователь №: 23 756



Цитата(DimG @ Apr 12 2007, 06:16) *
Не очень понял вашу проблему. Лично у меня никаких проблем с этим не возникало. Правда я в 2-м делал.


За книжечку - спасибо.

А проблема, что во 2-ом, что в 3-ем, следующая.
Касается встроенного симулятора.

Если основной файл содержит следующее:
Код
//-------------------------------------------------------
#include "func_def.c"

void main(void)
{char i=1;
do{
i = func( i );
   } while( i );
}
//-----------------------------------------------

а файл func_def.c
Код
char func(char b )
{
  b<<=1;
if( b )return b;else return 1;
}
//-----------------------------------------------


то при проходе в симуляторе он никогда не входит в файл func_def.c
и в дизассемблерном окне в качестве комментария к коду показывает
строки из основного файла которые к этому коду отношения не имеют
искал как это пофиксить, но увы.
Сейчас приходится func_def.c вместо #include включать в проект, а функцию объявлять как extern
в основном файле. Тогда отладчике все Ок, НО перед вызовом таких функций компилятор
запихивает все переменные из регистров в память и вся регистровая оптимизация накрывается,
так как на этапе компиляции неизвестно какие регистры портит функция, а портить она
имеет право все регистры включая DPTR.
Если писать все в одном файле, то в отладчике все хорошо и оптимизация работает, но
получается такая помойка, что лучше пожертвовать оптимизацией.

Вот такие, блин, непонятные проблемы. blink.gif
Глупость какая-то.

В ИАРе с таким не сталкивался.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 05:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016