roboforum.ru

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


mini2440 общие вопросы, обсуждения

mini2440 общие вопросы, обсуждения

Сообщение setar » 16 июл 2010, 11:31

Решил тут отдельную тему завести для обсуждения разных вопросов по поводу освоения mini2440...

Например у меня уже есть большие сомнения по поводу рациональности использования загрузчика u-boot в качестве базового.
Дело в том что u-boot несмотря на все его плюсы не умеет напрямую писать ни с USB ни с LAN непосредственно в NAND, только постадийно через RAM.
На фоне того что оперативная память 64M а NAND 128M или более - это становится проблемой, нужно резать выкладываемую корневую файловую систему на кусочки. Но разрезать на кусочки и загрузить состыковав в теоретически не так сложно, а вот на практике из за особенностей NAND таких как BAD блоки можно запросто получить сдвиг адресации, и нужно вручную контролировать сколько сбойных блоков приходится на записываемый сегмент и делать поправки адреса следующего куска.
В то же время supervivi похоже умеет писать непосредственно в NAND

Добавлено спустя 32 минуты 3 секунды:
второй вопрос - по поводу файловой системы для NAND
для тех кто не в курсе поясню - этот тип флешек (как впрочем и традиционные те что мы используем в USB , и SSD)
имеют особенность в том что для записи нужно сначала стереть блок размером в страницу (у нас это 128kB) а потом записать целиком этот блок.
Из за этого нужно чтобы файловая система понимала эту особенность и не делала запись целого блока при изменении его малой части -буфферировала этот процесс, т.к. количество циклов перезаписи ограниченно и не очень велико.
Я лично имел неосторожность убить серию блоков за неделю путем размещения своп файла линукса на файловой системе не предназначенной для флеша (ext2).

Так вот, о чем это я...
Традиционно в линукс для хранения данных на флешке использовалась файловая система jffs2 а в нашем mini2440 изначально лежало всё на yaffs (про которую я лично в первый раз услышал, кроме того в официальной ветке ядра такой системы нету).
Я занялся поиском информации о сравнении yaffs мы jffs2 и обнаружил следующую страничку http://www.yaffs.net/comparison-yaffs-vs-jffs. Резюмируя сравнение можно сказать что yaffs не использует сжатия (на embedded устройствах его обычно отключают и для jffs2) и рационально использовать для разделов больших чем 64M (наш случай)

Получается что китайцы ребята весьма продвинуты в этих технологиях и не стоит "мудрить" - думаю есть смысл возвращаться к оригинальным решениям.

Пока не понятно как обстоит дело с ядром.
ядро с диска в комплекте работает прекрасно, но оно "заморожено" по версии, я не нашел обновляемого репозитария этой ветки.
а вот ядро с репозитария repo.or.cz обладает пока рядом недоработок - криво работает tochscreen, совсем не управляется backlight. хотя возможно я не до конца разобрался с конфигурацией ядра.
Но смущает что методы которыми достигаются работоспособность основных уникальных устройств (инициализация борды, видео) весьма различаются.

Нужно решить- искать ли репозитарий ядра от производителей (китайцев) или разбираться с веткой repo.or.cz

Добавлено спустя 13 минут 6 секунд:
ответ на сообщение forum96/topic8361-105.html#171506
И по поводу больших файловых систем и u-boot. Я бы все-таки разделил файловую систему на две части. Первая содержит только самое необходимое (Busybox + ftp server/tftp client) и основную, в которой хранится все остальное. Первая будет объемом несколько метров и спокойно зальется в NAND на свой раздел. Да, естественно придется сделать на NAND один раздел для нее, а второй для (основной) FS. После заливки первого раздела можно загрузить линукс, примонтировать вторую часть. При первой загрузке основную FS придется создать и через FTP/ TFTP можно залить на основной раздел все необходимое. Первый раздел можно сделать ReadOnly. Преимущетсва такого подхода: даже если у вас испортится основной( RW) раздел, то система в любом случае загрузится и опять же через FTP залить туда все что нужно. Второй момент, если это коммерческое изделие, то вам придется делать сервис обновления Firmware. В нашем случае это делается довольно просто: нужно отмонтировать основной раздел, отформатировать его если нужно, и потом залить туда файлы ( хоть через WEB интерфейс). Смысл я думаю понятен, тут конечно может быть множество вариаций как все красиво сделать, но это уже зависит от конкретной задачи

То что вы Предлагаете называется initrd - именно он содержит базовый неизменяемый слепок системы и минимальный набор инструментов для подгрузки основной файловой системы.
Да, это не лишено смысле, тем более что существует механизм упаковки этого образа прямо в ядро системы.
у нас сейчас ядро порядка 2,5 МБ а раздел для ядра 5МБ - можно попробовать
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 общие вопросы, обсуждения

Сообщение Resident » 16 июл 2010, 12:09

setar писал(а):Решил тут отдельную тему завести для обсуждения разных вопросов по поводу освоения mini2440...
Вопрос 1: кто-нибудь уже занимался непосредственно GPIO ? (не встроенными светодиодами и кнопами, а именно разьемчиком 34 pin GPIO)???
хотя насколько я помню, частично он заведен на те же кнопки и светодиоды...
в линух-екземплах ничего похожуго не нашел.

setar писал(а):Например у меня уже есть большие сомнения по поводу рациональности использования загрузчика u-boot в качестве базового.
Еще один повод оставить в НОРе "старый, добрый" виви :) (последней версии конечно)
Любой прибор, защищённый плавким предохранителем, сможет защитить этот предохранитель, сгорев первым.
Resident
 
Сообщения: 167
Зарегистрирован: 14 июн 2010, 17:19
прог. языки: Qt/C/C++

Re: mini2440 общие вопросы, обсуждения

Сообщение setar » 16 июл 2010, 12:24

gpio в линуксе или без системы?
я пока не дошел до этого но вреде не сложно:
http://open-wrt.ru/forum/viewtopic.php?id=15739
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 общие вопросы, обсуждения

Сообщение Andrey37 » 16 июл 2010, 12:48

Я вот тоже третий день пытаюсь разобраться с GPIO, но в такую жару голова воще никакая :). GPIO у нас находятся /sys/class/gpio/gpiochip32v....196. Вроде так, но как там высчитать дольше? http://www.avrfreaks.net/wiki/index.php ... Linux/GPIO
Andrey37
 
Сообщения: 89
Зарегистрирован: 13 апр 2009, 09:29
Откуда: Иваново
Skype: b_andrey_37

Re: mini2440 общие вопросы, обсуждения

Сообщение Resident » 16 июл 2010, 18:01

setar писал(а):gpio в линуксе или без системы?
В линуксе
Andrey37 писал(а):Я вот тоже третий день пытаюсь разобраться с GPIO, но в такую жару голова воще никакая :). GPIO у нас находятся /sys/class/gpio/gpiochip32v....196. Вроде так, но как там высчитать дольше? http://www.avrfreaks.net/wiki/index.php ... Linux/GPIO

Так там по ссылке же все красиво описано!
Сейчас статейку накатаю по управлению :)

ЗЫ Учи инглишь ;)
(или юзай онлайн переводчики)
Любой прибор, защищённый плавким предохранителем, сможет защитить этот предохранитель, сгорев первым.
Resident
 
Сообщения: 167
Зарегистрирован: 14 июн 2010, 17:19
прог. языки: Qt/C/C++

Re: mini2440 общие вопросы, обсуждения

Сообщение Andrey37 » 18 июл 2010, 10:48

Вот с англицким проблема :), а онлайн переводчик в такую жару ,когда мозги кипят, слова не вяжутся :). Вот после карпоратива на реке приехал и как все хорошо стало :) И погодка сегодня блещет, +22 у нас :)
Andrey37
 
Сообщения: 89
Зарегистрирован: 13 апр 2009, 09:29
Откуда: Иваново
Skype: b_andrey_37

Re: mini2440 общие вопросы, обсуждения

Сообщение Palachzzz » 18 июл 2010, 11:32

Попробовал загрузить 2440test.. на удивление камера в режиме без ОС работает с хорошей скоростью (без запаздывания в 1 секунду), проблема в линуксе, или в корявых драйверах?
Palachzzz
 
Сообщения: 73
Зарегистрирован: 13 июн 2010, 13:34
Skype: Z_Z_Z-77
прог. языки: С++, Delphi
ФИО: Павел Новиков

Re: mini2440 общие вопросы, обсуждения

Сообщение Resident » 18 июл 2010, 11:39

Palachzzz писал(а):Попробовал загрузить 2440test.. на удивление камера в режиме без ОС работает с хорошей скоростью (без запаздывания в 1 секунду), проблема в линуксе, или в корявых драйверах?
В линухе.
Я когда в Qtopia делал kill основным процессам и потом делал camera_test камера тоже работала довольно быстро :)

Добавлено спустя 2 минуты 40 секунд:
Можно попробовать написать драйвер, который по хоткею будет выгружать все процессы оставляя одну камеру, а потом загружать все обратно.
И таким образом переводить миньку из режима Linux-Graphics в режим Camera и обратно :)
Но у меня мало опыта в написании таких дров. :(
Если кто-то возьмется - будет хорошо)
Любой прибор, защищённый плавким предохранителем, сможет защитить этот предохранитель, сгорев первым.
Resident
 
Сообщения: 167
Зарегистрирован: 14 июн 2010, 17:19
прог. языки: Qt/C/C++

Re: mini2440 общие вопросы, обсуждения

Сообщение Palachzzz » 18 июл 2010, 13:32

Можно попробовать написать драйвер, который по хоткею будет выгружать все процессы оставляя одну камеру, а потом загружать все обратно.
И таким образом переводить миньку из режима Linux-Graphics в режим Camera и обратно
Но у меня мало опыта в написании таких дров.
Если кто-то возьмется - будет хорошо)

не помогает.. сделал kill -9 почти всем процессам кроме самых основных, и запустил camtest.. что можно сказать.. может и быстрее... может даже раза в два...(а может и нет), но даже 0,5 секунды вместо 1 секунды задержки это слишком много для ориентации по камере (ну разве что для робо-улитки :D подойдет).. у меня есть http://cgi.ebay.com/wireless-IP-WiFi-camera-internet-pan-tilt-two-way-audio-/150463861216?cmd=ViewItem&pt=LH_DefaultDomain_0&hash=item23085851e0 вот такая камера, в ней задержка видео при передаче Wi-Fi с трансляцией в браузере не превышает 50-80 ms, система там тоже на линуксе стоит (там еще куча фарша кроме камеры, например датчик движения основанный на картинке с камеры, отправка фото со скоростью 1гц на FTP и/или E-Mail, двухсторонняя передача звука - при включении которой как раз появляется 1-секундная задержка картинки с камеры), правда там как я понял стоит отдельный чип для обработки камеры, а у нас ее обработкой должен заниматься непосредственно сам ЦП..
В общем, есть ли у кого-то USB камера попробовать ее скорость?..
Остается два варианта- 1. корявые дрова, 2. не уживаются линукс с обработкой камеры в одном кристалле.
Palachzzz
 
Сообщения: 73
Зарегистрирован: 13 июн 2010, 13:34
Skype: Z_Z_Z-77
прог. языки: С++, Delphi
ФИО: Павел Новиков

Re: mini2440 общие вопросы, обсуждения

Сообщение Resident » 18 июл 2010, 14:21

Palachzzz писал(а):не помогает.. сделал kill -9 почти всем процессам кроме самых основных, и запустил camtest.. что можно сказать.. может и быстрее... может даже раза в два...(а может и нет), но даже 0,5 секунды вместо 1 секунды задержки это слишком много для ориентации по камере (ну разве что для робо-улитки :D подойдет)..
Значит робу придется таки прогить на голом железе.
Хотя нет! СТОП!
насколько я понимаю, тут прикол с тормозами заключается именно в отображении картинки на экран
А зачем робу отображать картинку на экран? О_о
Он же её обрабатывает в памяти! или нет?
попробуй написать простенький алгоритм обработки видео и применить его без вывода картинки на экран!
(отладку можно делать и в режиме "робо-улитки", а потом вывод отключаешь и смотришь скорость :) )
как-то так чтоли... Может поможет. :pardon:
Любой прибор, защищённый плавким предохранителем, сможет защитить этот предохранитель, сгорев первым.
Resident
 
Сообщения: 167
Зарегистрирован: 14 июн 2010, 17:19
прог. языки: Qt/C/C++

Re: mini2440 общие вопросы, обсуждения

Сообщение galex1981 » 18 июл 2010, 15:19

Действительно, нужно проверить может "тормоза" заключаются именно в выводе картинки на экран, а это тогда проблемы драйверов.
ЗЫ: У меня когда на ПК REdHat 7 стоял, тоже проблемы вывода видеопотока от вэб камеры были, пока я версию с обновленными драйверами на видео не установил - тогда нормализовалось все...
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: mini2440 общие вопросы, обсуждения

Сообщение Palachzzz » 18 июл 2010, 16:29

Resident писал(а):Значит робу придется таки прогить на голом железе.
Хотя нет! СТОП!
насколько я понимаю, тут прикол с тормозами заключается именно в отображении картинки на экран

Я уже задумываюсь об отказе от линукса для данной затеи.. На 90% уверен что дело не в выводе картинки, а именно в драйверах, потому что пробовал через mjpg-streamer транслировать в Ethernet потоком (при этом картинка на экран не выводится), в браузере задержка ровно такая же как и на экране самой MINI, а т.к. mjpg-streamer работает через те же драйвера, вывод напрашивается..
Кто знает насколько сложно организовать USB-Host и Ethernet без операционки? :)
Palachzzz
 
Сообщения: 73
Зарегистрирован: 13 июн 2010, 13:34
Skype: Z_Z_Z-77
прог. языки: С++, Delphi
ФИО: Павел Новиков

Re: mini2440 общие вопросы, обсуждения

Сообщение Resident » 18 июл 2010, 17:10

Palachzzz писал(а):Кто знает насколько сложно организовать USB-Host и Ethernet без операционки? :)
Нуу насколько мне известно, что юсб-хост, что сеть в арме апаратные, значит от ОС мало зависят. Думаю не cложно..

Добавлено спустя 32 минуты 14 секунд:
Как вариант, посмотреть на дровко камеры в линухе, найти косяк и исправить)
Или написать с нуля свой)
Любой прибор, защищённый плавким предохранителем, сможет защитить этот предохранитель, сгорев первым.
Resident
 
Сообщения: 167
Зарегистрирован: 14 июн 2010, 17:19
прог. языки: Qt/C/C++

Re: mini2440 общие вопросы, обсуждения

Сообщение galex1981 » 18 июл 2010, 17:14

Ethernet без операционки реализовывал на LPC2368 - не сложно, даже примеры есть, на крайний случай в исходниках ядра LInux можно код взять
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: mini2440 общие вопросы, обсуждения

Сообщение Resident » 19 июл 2010, 12:38

Вопрос по RTC:
У всех миньки пришли с мертвыми батарейками?
Или есть другая причина, почему постоянно дата сбрасывается???
Любой прибор, защищённый плавким предохранителем, сможет защитить этот предохранитель, сгорев первым.
Resident
 
Сообщения: 167
Зарегистрирован: 14 июн 2010, 17:19
прог. языки: Qt/C/C++

След.

Вернуться в mini2440

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

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