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

 
 
> Псевдомногозадачность в IAR
piroman
сообщение Nov 19 2013, 17:58
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 27-09-12
Пользователь №: 73 712



Уважаемые!
Кто знает, как в IAR EWAVR грамотно реализовать следующий сценарий->
1. После сброса контроллера пользователь выбирает из предложенного списка одну из задач на выполнение.
2. Выхода из выбранной задачи обратно или в другую задачу нет.
3. Задача забирает ВСЕ ресурсы контроллера.

Собственно, вопрос в том, как объяснить линкеру, что разные задачи размещают свои переменные по совпадающим/пересекающимся адресам в RAM, как если бы других задач не существовало?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
piroman
сообщение Dec 16 2013, 08:32
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 27-09-12
Пользователь №: 73 712



Хотя такая задача уже отпала, но кое-что я всё-таки нашёл для такого случая в "IAR Linker and Library Tools Reference Guide".
Директива линкера, которая позволяет перекрывать сегменты данных, и вместо "Error" линкер пишет "Warning".

Цитата
-z
Syntax -z[a][b][o][p][s]
Parameters
Description Use this option to reduce segment overlap errors to warnings, making it possible to
produce cross-reference maps, etc.
-za suppresses overlap errors between absolute entries. This is useful if you, for
example, have several absolutely placed variables on the same address. Note that -za
only ignores overlaps where both entries are absolutely placed.
All overlaps are reported by default. You can specify -zb and -zs to ignore overlaps to
the bit and SFR area respectively.
For the 8051 processor, only overlaps that do not involve bit segments or SFRs are
reported. You can specify -zo and -zp to report overlaps.
Using the -zs option requires that the used processor has a dedicated SFR area that
XLINK has been made aware of. The only processor that has a dedicated SFR area for
these purposes is the 8051. Using the -zs option for any other processor will generate
warning 68 but otherwise have no effect.
Use -zb to suppress error 24 (segment overlap) for segment overlaps where at least one
of the involved segments is a bit segment.
This option is identical to the Segment overlap warnings option in the linker category
in the IAR Embedded Workbench IDE.


По-моему мнению, в использовании статических/глобальных переменных нет ничего страшного. Доступ к ним прост и быстр: LDS, STS, LD, ST. Лично у меня, только небольшое количество переменных, используемых в процедурах, локальные, чтобы не перегружать стек.
Go to the top of the page
 
+Quote Post



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

 


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


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