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

 
 
> scmRTOS + VDSP стеки задач в разных секциях
Fat Robot
сообщение Nov 16 2010, 19:52
Сообщение #1


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



посоветуйте, пожалуйста,
можно ли законными способами разместить стеки задач в разных секциях (речь о VDSP)?
или только шаблон задачи курочить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Nov 17 2010, 03:28
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Fat Robot @ Nov 17 2010, 01:52) *
посоветуйте, пожалуйста,
можно ли законными способами разместить стеки задач в разных секциях (речь о VDSP)?
или только шаблон задачи курочить?

Вам нужно стек "оторвать" от самого объекта? Если нет, то почему тогда не разместить весь объект в нужной секции?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 17 2010, 11:53
Сообщение #3


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Спасибо, dxp, буду пробовать.

Признаюсь, я пока "провисаю" в понимании того, во что преобразуются языковые конструкции с++ при компиляции. например, я не могу сейчас ответить на вопросы: если я по Вашему совету размещаю сам объект в секции "data", то в какой секции будет размещен исполняемый код методов? а если они inline? а если static?

Не открою тайны, сказав, что plain c в этом смысле куда более очевиден.

В общем, есть некоторое поле для осмысления пока с не предсказуемым результатом: печально будет в итоге осознать, что с++ не применим для класса задач, с которыми мне приходится иметь дело.
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 17 2010, 13:50
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Fat Robot @ Nov 17 2010, 17:53) *
Признаюсь, я пока "провисаю" в понимании того, во что преобразуются языковые конструкции с++ при компиляции. например, я не могу сейчас ответить на вопросы: если я по Вашему совету размещаю сам объект в секции "data", то в какой секции будет размещен исполняемый код методов? а если они inline? а если static?

В первом приближении можно считать, что объект класса - это как обычная сишная структура, но имеющая нативную связь с кодом (функциями-членами), реализованную неявно (хотя механизм очень простой - просто при каждом вызове функции-члена неявно передается указатель на эту структуру с данными, а зная размещение данных этой структуры в памяти (смещения относительно базового адреса), компилятор может однозначно и эффективно организовать доступ к конкретным членам-данным). Таким образом, объект класса - это, собственно, непрерывный кусок памяти, подобный любому агрегатному типу. От агрегатных типов (сишных структур, массивов) его отличает наличие дополнительного функционала - конструкторы/деструкторы, возможность использовать ограничение доступа (public/private), служебные данные типа vptr (если используются виртуальные функции) и т.п.

Функции-члены - это обычный код, как и обычные функции. И лежат они вместе со всем исполняемым кодом. В отличие от обычных функций, эти функции-члены можно вызывать только по отношению к объектам своих классов. Технически - это обычный код и размещается на общих основаниях.

Цитата(Fat Robot @ Nov 17 2010, 17:53) *
Не открою тайны, сказав, что plain c в этом смысле куда более очевиден.

Это пока. smile.gif Поближе познакомитесь, все станет так же прозрачно.

Цитата(Fat Robot @ Nov 17 2010, 17:53) *
В общем, есть некоторое поле для осмысления пока с не предсказуемым результатом: печально будет в итоге осознать, что с++ не применим для класса задач, с которыми мне приходится иметь дело.

Не будет. smile.gif С++ подходит для решения тех же задач что и С нисколько не хуже оного.

Т.е. вам нужно попробовать написать:
Код
#pragma section("section_name", NO_INIT)
TProcType ProcName;

и компилятор должен будет разместить этот объект в этой секции. Весь объект целиком - его внутренние данные и стек. Насколько вам это подходит, не знаю. А в чем причина в необходимости размещать стеки процессов в разных секциях, если не секрет?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



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

 


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


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