проблема подробнее
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Jedi 28 апреля 2003 г. 12:59
В ответ на: Вопрос знатокам Си отправлено Jedi 28 апреля 2003 г. 00:19

Имеется область памяти программ где находятся некоторые функции.
Размещение этой области жестко задано.

Это область boot, в ней находятся функции перезаписи, дешифрации, CRC, RS232. Которые хотелось бы использовать и из программы пользователя.

Положение функций в этой области (адреса) могут меняться.

Т.е положение функций в boot от времени будет меняться из-за неизбежных исправлений.

Имеется другая область памяти программ, из которой необходимо вызывать эти функции.


Эта область программ пользователя, загружаемая через RS232. Если она компилируется вместе с бутовой, то все ОК. Но у пользователя может быть старый бут. И адреса общих функций могут быть сдвинуты.

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

Для ОЗУ это легко

void(*pfunc)(void) @0x200 = func1;


т.е. указатель pfunc на функцию func1 находится по адресу 0x200.

А как ,уважаемые коллеги и старшие товарищи, поместить этот указатель в память программ в виде const для его адреса.


Заранее благодарен.

Составить ответ ||| Конференция ||| Архив

Ответы



Перейти к списку ответов ||| Конференция ||| Архив ||| Главная страница ||| Содержание

E-mail: info@telesys.ru