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

 
 
> "reentrant function" ARM7, GCC, как сделать?
yosephcz
сообщение Nov 30 2004, 14:35
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 30-06-04
Пользователь №: 223



мужики, есть LPC2292 + GCC compiler, как сделать "reentrant function"?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gcc-user
сообщение Dec 3 2004, 08:58
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 29
Регистрация: 21-09-04
Пользователь №: 691



Будет ли функция реентерабельная больше зависит от Вас, а не от компилятора.

A) Реентерабельная функция не должна хранить статические данные в промежутках между вызовами (все данные передаются из вызывающей функции).
Б) Реентерабельная функция не должна возвращать указатель на статические данные.
В) Реентерабельная функция не может вызывать нереентерабельную функцию.
Г) Если нужен доступ к общим ресурсам, то необходимо использовать механизм блокировки (простейшим вариантом является запрещение прерываний на время "критической операции").
Go to the top of the page
 
+Quote Post
DPL
сообщение Dec 3 2004, 13:26
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 88
Регистрация: 15-10-04
Из: Новочеркасск
Пользователь №: 886



Цитата(gcc-user @ Dec 3 2004, 11:58)
Будет ли функция реентерабельная больше зависит от Вас, а не от компилятора.
*

Это, конечно, так, но только при условии, что параметры передаются через стек. А вот, например, C51 от Keil по умолчанию передает параметры через специально выделенную (статически) область памяти. Другое дело, что для ARM передача через стек выглядит наиболее естественно и, скорее всего, используется по умолчанию.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th August 2025 - 02:44
Рейтинг@Mail.ru


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