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

 
 
> Доступ к коду в программном загрузчике, C++, templates, bootloader
segment
сообщение Jan 27 2011, 12:35
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471



Есть простой программный загрузчик. В нем присутствует шаблонный класс со статическими методами для работы с какой-нибудь периферией. К примеру:
Код
template <class T>
class A
{
public:
    static T read( void );
    static void write( T value );
};

В коде загрузчика используются его методы, к примеру:
Код
...
int var = A<int>::read();
A<int>::write(var);
...

Соответственно эти методы получили свое законное место во flash пространстве бутлоадера.

Теперь ближе к делу. Программа которая загружается с помощью этого бутлоадера в свою очередь тоже использует этот ресурс (класс А и его методы). Соответственно, если этот класс и его методы занимают много памяти, то целесообразно в программе адресоваться уже к имеющимся методам.

- Как указать чтобы методы этого класса и его члены находились с заданного адреса?
- Как в программе указать, что класс А (статические методы и члены) находятся где-то там во flash?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
akimych
сообщение Jan 28 2011, 23:38
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Я бы так и делал, но Сега видимо хочет другой вариант.
Кстати говоря, линкеру можно сказать, что где расположить.

Цитата
- Как указать чтобы методы этого класса и его члены находились с заданного адреса?

В кейле можно указать для каждого файла, в какие адреса его грузить. Указывается в опциях файла по правой кнопке.
Но толку от этого мало, т.к. никто не мешается расположить эти методы как угодно внутри отведенного пространства, т.е. будет зависеть от настроек.
Либо каждый метод класть в отдельную секцию.
Цитата
- Как в программе указать, что класс А (статические методы и члены) находятся где-то там во flash?

более хитрая задача.

Можно конечно придумать всякие хитрые способы, типа сгенерить по таблице символов исходник, который будет экспортировать нужные символы и код, обеспечивающий вызов родных методов.
Go to the top of the page
 
+Quote Post



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

 


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


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