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

 
 
> Запуск функции из оперативной памяти
Vasya777
сообщение Jan 22 2012, 06:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 22-01-12
Пользователь №: 69 790



Здравствуйте! Пользуюсь GCC для ARM.

Может кто-то уже сталкивался с этим. Как можно собрать программу так, что бы весь код был загружен во флешь память, а некоторые функции в ОЗУ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Petka
сообщение Jan 22 2012, 09:08
Сообщение #2


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Vasya777 @ Jan 22 2012, 10:29) *
Здравствуйте! Пользуюсь GCC для ARM.

Может кто-то уже сталкивался с этим. Как можно собрать программу так, что бы весь код был загружен во флешь память, а некоторые функции в ОЗУ?

При обьявлении функции указать через атрибут "section" что функция размещается в отдельной секции. В скрипте линкера указать что эта секция размещается в ОЗУ.

Код
void foobar (void) __attribute__ ((section ("ramfunc")));


кусочек скрипта линкера
Код
  .data : AT (__data_load_start)
  {
    PROVIDE (__data_start = .);
    *(.data)
    . = ALIGN(4);
    *(.ramfunc)
    . = ALIGN(4);
    edata = .;
    _edata = .;
    PROVIDE (__data_end = .);
  } > ram
Go to the top of the page
 
+Quote Post



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

 


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


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