Перейти к содержанию
    

Цифровая видеокамера

Долго думал и решил создать новую тему.

Полтора года назад мое начальство дало задание проработать проект цифровой видеокамеры,

но потом от него отказалось. А мне это до сих пор не дает покоя.

На тот момент у меня уже был опыт создания SOC (систем на кристалле) на своих процессорах.

Был даже проект векторного 64 разрядного сопроцессора (SIMD). Правда он так и не был реализован в ASIC-е.

С тех пор, занимаясь "плановой" работой, я нахожу немного времени для проекта цифровой видеокамеры.

Уже сделано почти все, кроме вывода изображения на ЖК экран. Но надежда на то, что камера когда-нибудь

будет востребована, с каждым днем "тает". Конечно я понимаю, что это коммерчески не выгодно.

Тягаться с известными зарубежными фирмами, выпускающими видеокамеры, бессмысленно.

Но для души такой проект - то что надо. Даже если он и не будет реализован. Наработанный опыт не

пройдет даром. Мысль о том что проект никому не нужен заставила меня обратиться на форум.

Выложить его, как есть, всем желающим я не могу по причине того, что это собственность предприятия.

Тем более что ассемблер к RISC процессору и векторному сопроцессору написан не мною.

Так вот, чтобы не нарушать коммерческую тайну и право собственности, я решил разработать новый RISC

процессор и векторный сопроцессор к нему в свободное от основной работы время (т.е. дома). Так как

опыт и наработки уже есть, это займет не очень много времени. Их то я (RISC и VCP) и мог бы выложить на форуме.

Проблема только в программном обеспечении. Чтобы быстро отладить процессор и сопроцессор, нужен как минимум

ассемблер с простейшей функцией разделения кода и данных, так как RISC ядро имеет гарвардскую архитектуру.

А как максимум, не мешало бы иметь gcc или binutils для разработки прикладного ПО.

В принципе, написать ассемблер мог бы и я, но тогда это займет много времени и не будет стимула

выкладывать все на форуме, да и заниматься этим. Может найдется среди вас энтузиаст,

который бы взялся хотя бы за ассемблер. Если таких нет, может кто знает к кому обратиться?

"С" компилятор на основе LCC мог бы написать и я в дальнейшем (если не будет gcc или binutils).

Чтобы иметь представление о RISC ядре, выкладываю пока не полное описание.

 

Николай.

torisc32.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем вас не устраивает готовые открытые RISC процессоры? Средства разработки под них есть.

 

Хотя я почитал и кажется понимаю. Тем не менее, сэкономили бы уйму времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще немного почитал о вашем r32core.. И совсем стало понятно. :) Тут процессор ради камеры, камера ради процессора и куча наработок. Поэтому вопрос снимается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема только в программном обеспечении. Чтобы быстро отладить процессор и сопроцессор, нужен как минимум

ассемблер с простейшей функцией разделения кода и данных, так как RISC ядро имеет гарвардскую архитектуру.

Может найдется среди вас энтузиаст,который бы взялся хотя бы за ассемблер.

я бы взялся сделать асм на питоне, что бы питон подтянуть и вашу разработку поковырять %). Но 4 ый фронт работы уже слишком и так приходится крутиться на научном, инженерном и управленческом фронте %(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:biggrin: От меня Вы помощи не дождетесь!

Сорри, юмор такой, у самого голова забита некоммерческими проектами...

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:biggrin: От меня Вы помощи не дождетесь!

Советом помочь это всегда пожалуйста, а вот делом нельзя объять необъятное %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проект камеры, пользовательской, имеет примерно следующую "разблюдовку" по трудозатратам:

Конечный дизайн 10-15%

- корпусные

- оптика

- компановка

- EU ПО

Комплект разработчика 30-35%

- железяки (включая чипы)

- SDK/DDK

- ПО обработки видео с датчиков

- массштаблёр

- кодеры-декодеры

База - всё остальное(%) от 50%

- ASIC+

- инструментальное ПО, включая модели разных уровней

- базовые фишки в виде оптимизированных библиотек

 

Всё это вместе, по самым скромным оценкам, стоит от ярда. Экономика невпихуемая.

 

Теперь по ходу работ, Николай, есть масса вопросов. Непонятна сама система, для чего тот или иной узел нужен в ней. Нет лёгкой модели высокого уровня чтобы проверить, отладить, моделить ...

Т.е. выполнение работ менее чем на %

Можно примкнуть к массе свободных или полусвободных проектов процессоров и на них "зарезать ценник" для достижения цели - потом сделать специализированное ответвление.

 

По "реальности" - можно, конечно, доработать гцц с бинутилсами (кстати - гнутому пофиг "гарвард" или не "гарвард"), но боюсь что это будет зря потраченное время и Ваше и наше.

 

PS Мой совет: "закопайте" инвестицию и забудьте :) ... Проект стоящий ярд не сделать за миллион. Чесотку рук можно унять на основном месте работ или в целевой команде как "хобби"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как максимум, не мешало бы иметь gcc или binutils для разработки прикладного ПО.

 

и как минимум gcc, иначе баловство

 

какую задачу с использованием VFP можно запрограммировать на асм-е или на чистом C?

 

-----------------------

 

вобщем, чем больше хороших проектов, тем лучше.

 

но на всякий случай:

знаете ли про OpenSPARCT1/T2? btw: DmitryR на опенкоресах SoC проект с таким спарком выложил

ну или LEON3

про камеры: http://www3.elphel.com/ сорцы дают

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какую задачу с использованием VFP можно запрограммировать на асм-е или на чистом C?

 

Сделал и отмоделировал кодек JPEG. Управляющую программу написал на С, остальное на асме для VCP.

Полученные результаты можно посмотреть в файле для разных коэффициентов квантования.

 

Николай.

lady64x64.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Простой ассемблер(как в приложении) пишется/отлаживается за пару дней. В приложении мой самый первый вариант ассемблера на Паскале - написал для себя давно, когда осваивал at90s1200 (мнемоника Атмела очень не понравилась). После переделки использовал и для регистровых софт-процессоров - мнемоника и система команд (asm.def) легко настраивается.

Кому нужен ассемблер для регистровых софт-процессоров - предлагаю просто взять саму идею настраиваемого ассемблера и написать программу с нуля, или найти в инете подходящий, и аккуратно сделанный проект.

 

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

 

Переменных, массивов, и тп - в выложенной версии нет (есть в версии для софт-процессоров).

asm.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть в интернете проект процессора XR16.

К нему прилагается исходник ассемблера.

На его основе вполне можно сделать ассемблер почти для любого процессора.

Первая задачка состоит в том, что надо добавить директивы data и text.

И чтобы счетчиков адреса было 2 - один для секции text, а другой для data и bss.

Прилагаю проект ассемблера XR16 с тестовой программкой на асме.

Если решить первую задачку, то остальное уже "дело техники".

Толковому программисту эта задачка на несколько часов.

Настроить затем ассемблер на свой процессор я могу и сам (проходил на ST16).

 

Николай.

XR16.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал и отмоделировал кодек JPEG. Управляющую программу написал на С, остальное на асме для VCP.

Полученные результаты можно посмотреть в файле для разных коэффициентов квантования.

 

да и я когда-то MJPEG на асме написал - но кому это сейчас надо?

 

хочу сказать, что нужен С++ компилятор (с полнофункциональным фронтэндом и более-менее разумной оптимизацией) для каких-то коммерческих проектов и использования ядра где-то вне круга энтузиастов.

для энтузиастов есть forth

 

проблемы написать ассемблер/линкер - я вообще не понимаю, если нету Jump-ов разного размера (спасибо интелу за х86), то вообще табличная перекодировка, ну и через С-шный препроцессор прогнать #define и т.п.

но всегда лучше binutils-ы портировать - все умеют пользоваться, документации полно, ну и утилиты типа objcopy всем нужны

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть в интернете проект процессора XR16.

К нему прилагается исходник ассемблера.

На его основе вполне можно сделать ассемблер почти для любого процессора.

~1К строк на ЯВУ - можно и программу посложнее ассемблера замутить, например - компилятор "автокода" (~1100 строк на Паскале).

http://electronix.ru/forum/index.php?showt...st&p=605442

На основе личного опыта и предлагаю сразу делать компилятор урезанного ЯВУ(минуя ассемблер), а также оптимизировать ядро под компилятор(а не наоборот).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На основе личного опыта и предлагаю сразу делать компилятор урезанного ЯВУ(минуя ассемблер), а также оптимизировать ядро под компилятор(а не наоборот).

С ЯВУ никогда дело не имел, но мысль заманчивая.

С чего начать?

 

Николай.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пожалуй, с разбора длинных логических выражений if-else по сокращенной схеме, все остальное проще, имхо.

if( (a==1) && (b==2) || (c==3) && (d==4) )... и тп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...