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

 
 
 
Reply to this topicStart new topic
> Использование указателей в uC
alexander55
сообщение Aug 9 2007, 10:33
Сообщение #1


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Вопрос к уважаемому Форуму.
При использовании классов переменные попадают в RAM, а функции во Flash.
Получается, что при использовании указателей выделяется дополнительная память под указатели и само обращение к функциям дополнительно тормозит.
А теперь вопрос. Имеет ли смысл вообще при наличии альтернативы использовать указатели на классы в uC ?
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 9 2007, 11:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



ИМХО использование указателей имеет смысл, если вы пишете отдельные функциональные модули. Очень удобно один раз написать и отладить такой модуль и потом для других случаев применять уже готовый. А чтобы не было привязки к конкретным адресам/данным используются указатели и относительная адресация.
Если же быстродействие и размер ОЗУ, используемого для данных и указателей, критичны, то наверное лучше обойтись без указателей.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Aug 9 2007, 12:22
Сообщение #3


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(rezident @ Aug 9 2007, 15:12) *
ИМХО использование указателей имеет смысл, если вы пишете отдельные функциональные модули.

Без указателей тоже отдельные.
Цитата(rezident @ Aug 9 2007, 15:12) *
Очень удобно один раз написать и отладить такой модуль и потом для других случаев применять уже готовый.

Полностью согласен.
Цитата(rezident @ Aug 9 2007, 15:12) *
А чтобы не было привязки к конкретным адресам/данным используются указатели и относительная адресация.

Для загрузки и выполнения загруженной программы (пример CPM, MSDOS), это верно.
Для uC вряд ли, программа ведь во Flash.
Цитата(rezident @ Aug 9 2007, 15:12) *
Если же быстродействие и размер ОЗУ, используемого для данных и указателей, критичны, то наверное лучше обойтись без указателей.

Очень хорошо, большое спасибо.
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 9 2007, 13:45
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(alexander55 @ Aug 9 2007, 18:22) *
Для загрузки и выполнения загруженной программы (пример CPM, MSDOS), это верно.
Для uC вряд ли, программа ведь во Flash.

Ну и что из этого? Во Flasj можно выделить отдельный сегмент(ы) и загружать туда готовый(е) модуль(и). А в основной программе использовать указатели для вызова функций из выделенного сегмента.

Цитата(alexander55 @ Aug 9 2007, 18:22) *
Без указателей тоже отдельные.

Если модуль использует только свои собственные переменные и вызовы, то да. А если он использует другие глобальные переменные или вызовы?
Go to the top of the page
 
+Quote Post
alexander55
сообщение Aug 10 2007, 04:49
Сообщение #5


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(rezident @ Aug 9 2007, 17:45) *
Ну и что из этого? Во Flasj можно выделить отдельный сегмент(ы) и загружать туда готовый(е) модуль(и). А в основной программе использовать указатели для вызова функций из выделенного сегмента.

Я понял Вашу мысль. Если делать наладонник, то только так и надо поступать.
Цитата(rezident @ Aug 9 2007, 17:45) *
Если модуль использует только свои собственные переменные и вызовы, то да. А если он использует другие глобальные переменные или вызовы?

Вы имеете ввиду что-то тина API вызовы? Если так, то Вы правы (но на эту тему надо очень хорошо помыслить).
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:32
Рейтинг@Mail.ru


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