Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: mVision2
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Fape
Здраствуйте ктонибуть сталкивался с такой проблемой
Компилятор Keil мюVision2 под камень ADuc834

вот такой вот код генерит черт знает как

unsigned char var;

void func (unsigned char* data)
{
*data = "любое байтовое значение";
}

func(&var);


врепеменной var всегда оказыватся одно и тоже значение не имеющее ничего общего с присвоением в теле функции !!!

где искать подвох ???? 05.gif 05.gif 05.gif
Палыч
1. data - зарезервированое слово (наверное, в реальной программе - обозван параметр по другому)

2. "любое байтовое значение" - это что? Ковычки - к чему? Приведите пример.
Fape
Цитата(Палыч @ Apr 9 2008, 12:18) *
1. data - зарезервированое слово (наверное, в реальной программе - обозван параметр по другому)

2. "любое байтовое значение" - это что? Ковычки - к чему? Приведите пример.


это же пример есесенно data в программе не фигурирует ))))

любое бйтовой значение это означает что бы я в теле функции не присваивал наружу по указателю достаеца одно и тоже число !!!
Палыч
Пример - где?

Что, вот так:
*data=0;
нуля не получаем?
Fape
именно не получаем ))))

unsigned char sss;


void ttt (unsigned char* Datum)
{
*Datum = 0x23;
}


ttt(&sss)

sss - всегда одно и тоже число в не зависимости от конкретного присвоения в теле функции (((
Палыч
Цитата(Fape @ Apr 9 2008, 11:32) *
именно не получаем ))))
Ну, да, щас! Как Вы определили, что не получаете?
Fape
очень просто я переношу простенький протокол обмена с одного контролера на другой ) UART канал отлажен отсылаю на ПЦ значение из тела функции все тип топ на ПЦ приходит то что нужно отсылаю значение после того как функция отработала вынутое из нее по указателю всегда один итотже бред ... что характерно этот участок кода на AVR откомпелированный CVA работает безсбойно перенесенный uVision2 на ADuC834 глючит проверят отдельно без всякой лабуды просто тупо функция не возращает значение изменяемое по указателю ( второй день чешу в затылке ... главное могу переделать не используя указателя не сложно ... но сам факт убивает 07.gif 07.gif 07.gif
Палыч
Так посмотрите, что там в ассемблерном коде. Ваш пример из поста #5 у меня работает на ура.
Fape
а что за версия компилятора ? )
Fape
все перепробовал ) переставил компилятор на uVision3 ... в место присвоения значения переданного в функцию по указателю происходит присвоение адреса этого же указателя ... мрак 07.gif

может че с настройками компилятора или проекта не так ? crying.gif

неужели ни каких идей ? sad.gif
Палыч
Цитата(Fape @ Apr 9 2008, 14:43) *
может че с настройками компилятора или проекта не так ? crying.gif
Скорее - проблемы с кривыми руками. smile.gif
Вы попробуйте в компиляторе свой пример из поста #5. Если сработает правильно - копайте программу. Если не сработает - представте программу и её ассемблерный файл (его можно получить поставив галку Assemble SCR File в опциях файла).
Fape
БРАТЬЯ ПО РАЗУМУ 1111493779.gif глюк отловлен и ликвидирован ... дело в том что при компоновке проекта (случайно) был выкинут файл "START_AD.A51" ... без оного компилятор работал вот таким вот странным образом 07.gif 07.gif 07.gif ... встаки настройки проекта wink.gif всм спасибо за моральную поддержку !!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.