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

 
 
> Свой планировщик для IAR под AVR.
Beginning
сообщение Jul 14 2010, 14:59
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Стоит цель написать свой кооперативный планировщик под компилятор IAR под архитектуру AVR.
Почему свой, это отдельная тема, да и не стоит её здесь обсуждать.
Вобщем ищу любую информацию где и как сохраняет компилятор IAR переменные и адреса возвратов. Интересует любая информация по поводу написания планировщиков.
Спасибо.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
SSerge
сообщение Jul 14 2010, 15:11
Сообщение #2


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



И в чём проблема?
У IAR вполне понятная и подробная документация (в папке avr/doc), всё расписано, раэжёвано и примеры приведены.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
oll
сообщение Jul 14 2010, 15:23
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



вроде неплохая
на маленьком пике хорошо живет, есть и для IAR AVR
http://wiki.pic24.ru/doku.php/osa/avr

Сообщение отредактировал oll - Jul 14 2010, 15:28
Go to the top of the page
 
+Quote Post
Beginning
сообщение Jul 14 2010, 15:30
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Долго мучал OSA, пытался викинуть всё лишнее для меня - поддержку других контроллеров и компиляторов. Но блин - шаг вправо, шаг влево и не работает. ИМХО, и не прошу сильно пинать но написанна в стиле http://habrahabr.ru/blogs/arbeit/99016/#habracut, по крайней мере некоторые обзацы я точно почувствовал на себе.
По этому решил написать свой.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 14 2010, 15:35
Сообщение #5


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

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



Решил написать - пиши! К чему тогда всякие расспросы?
Go to the top of the page
 
+Quote Post
oll
сообщение Jul 14 2010, 16:29
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



можно еще почитать:
http://habrahabr.ru/blogs/controllers/58366/
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 15 2010, 09:56
Сообщение #7


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



setjmp/longjmp - исходники для них есть тоже.
Go to the top of the page
 
+Quote Post
Beginning
сообщение Jul 15 2010, 15:55
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Цитата(sergeeff)
Решил написать - пиши! К чему тогда всякие расспросы?

А чего ты так возмущаемся? Расспросы как расспросы. Я нигде не писал что, цель стоит написать своё - непохожее ни на что. Меня, прежде всего, волнует результат. И я с удовольствием воспользуюсь чужим кодом и примерами.
P.S. Пытался найти исходники jaCOC И SALVO – не нашёл.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
shreck
сообщение Jul 16 2010, 02:45
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



Когда-то давным-давно начинал делать кооперативную ось для развлекухи. Но не доделал. В прищепке результат того труда. Может чем поможет. Нормальной доки нет, только то, что в коментах.
Прикрепленные файлы
Прикрепленный файл  CMOS.ZIP ( 5.15 килобайт ) Кол-во скачиваний: 46
 
Go to the top of the page
 
+Quote Post
Fktrctq
сообщение Jul 16 2010, 04:46
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 10-11-05
Из: Таганрог
Пользователь №: 10 659



Цитата(Beginning @ Jul 14 2010, 19:30) *
Но блин - шаг вправо, шаг влево и не работает.

А зачем Вы этим занимались? ИМХО это лишний и бесполезный труд, компилироваться будет та конфигурация которую Вы укажите, и в Вашей программе не будет никакой поддержки "других контроллеров и компиляторов". Ну или вот решите Вы перейти на другой компилятор и придется вам "дописывать обратно" то, что вы наудаляли. Или выйдет новая версия ОС, и Вы снова будете шаманить над её внутренностями? Поверьте я сам этим когда-то по глупости занимался, времени потратите много - а польза от этого сомнительная. Ровно как и написание своего планировщика, если у вас нет жестких требований, из-за которых нельзя использовать существующие, то и не стоит начинать, опять же пустая трата времени, а время, как говорится - деньги.

К стати, обратите внимание на freeRTOS и scmRTOS.

Сообщение отредактировал Fktrctq - Jul 16 2010, 04:49


--------------------
Вы пробовали выключить и снова включить?
Go to the top of the page
 
+Quote Post
Beginning
сообщение Jul 16 2010, 06:29
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



To shreck: спасибо посмотрю.
To Fktrctq:
scmRTOS как раз сейчас смотрю. Забавно – но когда разрабатывал свой планировщик – задался вопросом, а как же с локальными переменными в других кооперативных RTOS? И оказалось никак – не сохраняются, бери глобальные (а я не хочу “костыли”). И плавно пришёл к выводу, что надо сохранять весь банк регистров – а от сюда до вытесняющей один шаг, вот и смотрю на scmRTOS.
А насчёт - своё чужое, здесь может быть много мнений,в сё зависит от опыта. Пример – мой напарник был ярым приверженцем outsource – инга. Сколотил огромный сайт. Но после года –двух, выкинул всё и начал писать своё – говорит это ад, каждый месяц ломают сайт, установка новых обновлений – ад. Вообщем поменял он своё мнение.
Я работаю с контроллерами и тоже много раз сталкивался с проблемой – время, затраченное на изучение и поддержку чужого кода, оказывалось больше чем писание своего – а результат несоизмеримо меньше – что то добавить нереально. Но повторяю это всё зависит от ситуации и с опытом понимаешь где какой путь принять. Разумеется linux/windows никто писать не будет.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 16 2010, 06:40
Сообщение #12


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



_Pasha в таких случаях пеарит свой любимый protothread
Цитата
Protothreads are extremely lightweight stackless threads designed for severely memory constrained systems, such as small embedded systems or wireless sensor network nodes. Protothreads provide linear code execution for event-driven systems implemented in C. Protothreads can be used with or without an underlying operating system to provide blocking event-handlers. Protothreads provide sequential flow of control without complex state machines or full multi-threading.

Вроде бы и не операционка, но нагляднее стэйт-машин


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Микрюков Вячесла...
сообщение Aug 28 2010, 07:24
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 21-08-10
Из: Набережные Челны
Пользователь №: 59 037



По моему все операционки делятся на две категории:
1: Те в которых задачи сами завершают свою работу в текущем цикле, заботясь при этом о своих параметрах.
2: Те которые прерываются операционной системой с соответствующим сохранением всех параметров задач. При запуске задачам передаются ранее сохраненные параметры.
Мне лично нравится первый тип, на AVR сам написал операционку. Очень удобно новые задачи подключать, главное чтобы задача не превысила отведённое ей время в текущем 1ms цикле. А глобальные, короткие ссылки, переменные это всё пофигу, где написал там и компилирует. Как до задачи дойдёт очередь она сама определяет активная она или нет, если нет - в конец себя goto.
Переход гораздо быстрей работает, чем сохранение параметров.



Сообщение отредактировал Микрюков Вячеслав - Aug 28 2010, 07:27
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 28 2010, 15:18
Сообщение #14


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Микрюков Вячеслав @ Aug 28 2010, 11:24) *
По моему все операционки делятся на две категории:

Не операционки, а планировщики (многозадачность), называются
1. Кооперативная
2. Вытесняющаая

У вас больше похоже на отсутствие планировщика вообще, просто главный цикл из которого по очереди функции вызываются.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 28 2010, 19:21
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (KRS @ Aug 28 2010, 18:18) *
У вас больше похоже на отсутствие планировщика вообще

Сие имеет красивое название Super-Loop, но системой дейсвительно не является.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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