roboforum.ru

Технический форум по робототехнике.


Обсуждение реализации шлюз-контроллера [ORFA]

Разработка стандартизированных модулей для домашнего робостроения.
Правила форума
Правила раздела OpenRobotics

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение Vooon » 19 май 2009, 20:16

Пример! лениво в ман лезть :)
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение blindman » 19 май 2009, 20:23

Примерно так:


Makefile
Код: Выделить всёРазвернуть
ifeq "$(CONFIG_FILE)"  ""
    CONFIG_FILE = config.mak
endif
include $(CONFIG_FILE)
include resolve.mak



config.mak
Код: Выделить всёРазвернуть
VOS_TARGET = AVR128
SRC = test.c
EXE = VelaOS

VOS_F_CPU = 14745600L

VOS_USE_SLEEP = 1
#VOS_USE_SIR = 1
VOS_CFG_SIR_ENTRIES = 10
VOS_CFG_PRIORITIES = 5
VOS_USE_VBUS = 1
VOS_VELABUS_BUFSIZE = 2
VOS_USE_MUTEX = 1
VOS_USE_TIMER = 1
VOS_USE_PREEMPTION = 1
VOS_NUM_TIMERS = 4
VOS_USE_QUEUE = 1
VOS_NUM_QUEUES = 4


resolve.mak
Код: Выделить всёРазвернуть
ifneq "$(VOS_USE_PREEMPTION)" ""
    DEFINES += -DVOS_CFG_PRIORITIES=$(VOS_CFG_PRIORITIES)
    DEFINES += -DVOS_USE_PREEMPTION
   VOS_USE_SIR = 1
else
    DEFINES += -DVOS_CFG_PRIORITIES=0
endif

ifneq "$(VOS_USE_SIR)" ""
    DEFINES += -DVOS_USE_SIR
endif

include vos/target/resolve.mak
include vos/lib/resolve.mak
include vos/kernel/resolve.mak

ifeq "$(strip $(VOS_F_CPU))" ""
    MESSAGES += |F_CPU is 14.7456 MHz by default
    VOS_F_CPU = 14745600L
endif

DEFINES += -DF_CPU=$(VOS_F_CPU)
INCLUDES += -includevos/kernel/scheduler.h
INCLUDES += -includevos/kernel/errors.h

ifneq "$(strip $(VOS_TICK_PERIOD))" ""
    DEFINES += -DVOS_TICK_PERIOD=$(VOS_TICK_PERIOD)
else
    DEFINES += -DVOS_TICK_PERIOD=8000
endif

resolve.mak есть и в подкаталогах
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение Vooon » 19 май 2009, 21:04

Понятно, сделаю неснолько конфигов...
А вот сами драйверы думаю все же вынести из registers
но без шаманства с симлинками, просто их всех поместить в drivers.

Так получится только один раз собрать библиотеки, а драйвера собирать из главного мейка.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение Vooon » 21 май 2009, 16:22

Вынес драйвера в отдельный каталог,
добавил конфиги,
немного перетряхнул доксиген
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение =DeaD= » 21 май 2009, 19:54

А вот эта версия - http://hg.vehq.ru/orfa/file/809791b9ae1b/main.c#l1
она откуда берет команды? С уарта или с и2с?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение Vooon » 21 май 2009, 21:23

Смотри на мэйн, а там вместо главного цикла serialgate_mainloop();
Из чего можно догадаться, что используется библиотека для уарта.
Для слейва еще нет кода, т.к. у меня нет необходимости...

Добавлено спустя 4 минуты 29 секунд:
Нужно поправить драйвера, чтобы они использовали gate_register_allocate()
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение blindman » 21 май 2009, 21:32

В описании драйвера не надо хранить все номера регистров - достаточно начального номера и количества регистров

Добавлено спустя 3 минуты 44 секунды:
Соответственно gate_gregister_allocate() надо переписать - чтобы он драйвер запрашивал для себя n регистров, а ядро возвращало начальный номер
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение =DeaD= » 21 май 2009, 21:40

Как-то не ясно как это работает. Я себе представляю так:

Мы в главной процедуре по идее должны зарегистрировать в ядре:
1. Все драйверы - на нужные адреса;
2. Источник команд (i2c-slave-receiver или serial-gate);

После чего надо включить источник команд и драйверы.

Оно примерно так работает или нет?

Добавлено спустя 1 минуту 18 секунд:
blindman писал(а):чтобы он драйвер запрашивал для себя n регистров, а ядро возвращало начальный номер

Неее, думаю лучше явно их размещать, просто ядро должно проверять, что пересекаются эти интервалы.

Чтобы лишний раз не двигать драйверы, а то не все будут через интроспекцию их адреса получать.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение blindman » 21 май 2009, 21:44

Не лучше.Драйвер будет думать, что его регистры нумеруются с нуля - проще добавить новые регистры не затрагивая прочие драйвера. Ядро через интроспекцию будет выдавать реальные номера. Получать через интроспекцию будут все. В приказном порядке :)
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение =DeaD= » 21 май 2009, 21:47

Не понял - будет возможность убрать 1 старый драйвер и добавить 1 новый с другим кол-вом регистров не тронув старые драйвера кроме одного удалённого?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение blindman » 21 май 2009, 21:50

Убрать, добавить, убрать регистры, добавить регистры - что угодно. Не думая, а не занят ли уже регистр который мы хотим использовать. Меньше возможностей для ошибок, проще сборка.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение =DeaD= » 21 май 2009, 21:58

При этом адреса старых останутся? Ядро автоматом не сдвинет следующие за удаляемым драйверы?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение blindman » 21 май 2009, 22:01

Сдвинет. Потому я и говорю - интроспекцию использовать в приказном порядке

Добавлено спустя 2 минуты 21 секунду:
Если делать так, что можно не использовать интроспекцию, а ориентироваться на фиксированные регистры - смысла в такой интроспекции немного
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение =DeaD= » 21 май 2009, 22:02

Не-не-не, нафиг интроспекцию в приказном порядке :) зачем людям жизнь усложнять сразу? А что нам мешает сохранять адреса? Ну сделать так, что можно желаемый адрес при регистрации передать - это то мы можем? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Обсуждение реализации шлюз-контроллера [ORFA]

Сообщение blindman » 21 май 2009, 22:08

Если будет 50 драйверов - есть шанс что они займут все доступные номера, да еще и не хватит. А вот шансов, что все эти драйвера будут собраны в 1 девайсе - немного. Лучше сразу сделать так, что бы избежать проблем, чем потом все ломать и в итоге сделать именно так.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Пред.След.

Вернуться в Open Robotics

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3