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

 
 
> Указатели на функции
ArtemKAD
сообщение Jun 26 2006, 10:18
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Может кто подскажет как бороться с зависанием полученного кода если в нем использованы указатели на функцию. help.gif
Бо шаманить с лишними nop-ами уже порядком надоело... angry.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ArtemKAD
сообщение Jun 26 2006, 16:37
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Примерно так:
// Структура таблицы ключевых слов
struct token
{
const char __flash *str;
void (*fun)(void);
};

// Таблица ключевых слов и их обработчиков
__root __flash const struct token token_table[] =
{CR_LF,fun_VOID,
OK, fun_OK,

..............................................................

}

void fun_VOID(void)
{
asm("nop"); // Лекарство от зависания sad.gif !!!
return;
}

/* Обработчик "OK" */
void fun_OK(void)
{
if(error_cnt)

error_cnt --;
(*fun_OK_addr)(); // Запуск обработчика по указателю
asm("nop"); // Лекарство от зависания sad.gif !!!
return;
}


..........................................
// а вот так вызывается в коде из таблицы....
void (*p)(void);
Response--;
p = token_table[Response].fun;
(*p)();
// token_table[Response].fun(); - тоже самое, но так вроде стабильнее ;(


.............................................

К сожалению с кодом проблемы - надо перекомпилировать и много кода сюда писать....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ArtemKAD   Указатели на функции   Jun 26 2006, 10:18
- - _Bill   Цитата(ArtemKAD @ Jun 26 2006, 13:18) Мож...   Jun 26 2006, 10:26
- - vet   ...и при чём тут nop'ы ?   Jun 26 2006, 11:25
|- - ArtemKAD   Цитата(vet @ Jun 26 2006, 14:25) ...и при...   Jun 26 2006, 14:27
- - GetSmart   Крутой наверное компилятор. У меня-то неопытного в...   Jun 26 2006, 15:28
- - ArtemKAD   А шут его знает, вроде АВР :-) ... Адрес естествен...   Jun 26 2006, 16:03
- - vet   Вы случаем не абсолютные ли адреса присваиваете ук...   Jun 26 2006, 16:05
- - GetSmart   А на самом деле, дайте зыркнуть на кусок кода, кот...   Jun 26 2006, 16:15
|- - _Bill   Цитата(ArtemKAD @ Jun 26 2006, 19:37) /* ...   Jun 27 2006, 10:41
|- - Сергей Борщ   Цитата(ArtemKAD @ Jun 26 2006, 19:37) При...   Jun 27 2006, 12:25
- - GetSmart   1. Попробуйте перед созданием таблицы костант опис...   Jun 26 2006, 17:01
- - vet   Скомпилировал код версией 4.11А. NOP'ы повыкид...   Jun 26 2006, 17:15
|- - ArtemKAD   Цитата(vet @ Jun 26 2006, 20:15) Скомпили...   Jun 26 2006, 17:59
- - ArtemKAD   Естественно есть прототипы описаные до констант - ...   Jun 26 2006, 17:29
- - GetSmart   Кого будем бить за дезинформацию? {"\r...   Jun 26 2006, 17:33
- - vet   Ну, не придирайтесь в условии задачи эти строки н...   Jun 26 2006, 17:34
- - vet   Вероятно, дело в чем-то другом.   Jun 26 2006, 18:12
- - ArtemKAD   ЦитатаИ напоследок вопрос, который интересует меня...   Jun 26 2006, 18:19
- - GetSmart   Я вот тоже думаю, что дело в чём-то другом. А чтоб...   Jun 26 2006, 18:26
- - ArtemKAD   Точно - в другом месте . А вставка лишнего nop-а ...   Jun 27 2006, 20:29


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

 


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


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