mVlad77, блин... тоесть сигнал с ЖПС тупо передаем в любые порты проца и там все какимто образом у нас запишется?
Еще раз повторю, что информацию о GPS процессор Ambarella (это процессор ARM + аппаратные блоки, в том числе и блок кодирования, блок работы с камерой, блок подключения LCD и COM порт, USB порт, модуль работы с SD картой и т.д.) получает от отдельного аппаратного GPS модуля (со своей прошивкой), в виде строки вида:
$GPRMC,040302.663,A,3939.7,N,10506.6,W,0.27,358.86,200804,,*1A
в которой уже есть точное время и координаты. Это приходит через COM порт, который вызывает прерывание, обрабатываемое программой, которая тупо считывает последовательно всю символьно-цифровую посылку, обрабатывает ее и пересылает ее в другой блок (регистр) процессора, параллельно записывая лог файл на диск (вот тут идея была, что GPSLog забивает свободное место - а Вы попробуйте через Windows на флешке в нужном месте создать файл нулевой длины и поставить ему атрибут ReadOnly).
Тоесть программно на не нужно выдлить из этого сигнала именно время, координаты, скорость. Пернести все это на штамп видео, сделать ЖПС лог файлы.
Нет никакого сигнала ! есть посылка в 100-150 байт, формат которой приведен выше! Эта посылка пересылается в процессор через COM порт.
И пульт... тоесть амбарелла такая продуманная, что включение менюшек на экране и прочие реакции на кнопки делаются на АППАРАТНОМ уровне?
Вопрос работы меню здесь не рассматривается ! Если Вам интересна теория, то в этом режиме камера переводится полностью в программный режим работы, вывод на экран идет из RAM внутри процессора. Если есть сомнения - начало темы про F500HD посмотрите - там у меня часть шлейфа отошла, проблема на экране была только во время записи (!) видео имеется там же, а вот в меню проблем не было никаких - это означает, что информация даже физически по разным проводникам передается на экран в разных режимах работы камеры.
Я не говорю что посылка пульта обрабатывается программно побитно и вычисляется что мы там нажали. Программно реализована реакция на эту кнопку, котоую вычислил камень аппаратно.
Про это речь вообще не шла ! Про меню и работа с ним никоим образом не была затронута в моем посте, отвлекитесь уж от этого!
Я не говорил что поток видео целиком обрабатывается программно. Чтобы шатмп появился, прежде его нужно создать, и уж потом врезать в поток видео. А создает штамп кто? Прально, софтик.
Вы недопонимаете принцип! Софт делает только строку символов типа 'Speed=Z Координаты=X,Y', а переводит ее в битовое изображение (т.е. в левом углу изображения непосредственно "рисует" (растеризует) эту фразу) сам блок захвата процессора ! Не может софт иметь доступа с RAW потоку с камеры - программа на C загнется от такой информации.
Карта... ессно процесс записи реализован аппаратно, ибо будет полным бредом использовать софтовые решения, и забить на готовый аппаратный интерфейс работы с картой. Только вот то же самое закрытие файла, длительность записи файла - это то программно контролируется.
Выбирается имя папок на карте, как обозвать файлы, какие статусы присвоить файлу. - все это программное.
Речь и про это тоже не идет. Речь шла о процессе формирования содержимого файла, а поскольку, это делается без участия программы (причина только одна - скорости работы программы не хватит на обслуживание операций ввода-вывода). Тут может быть вариант, когда помимо программы на C - то, что Вы называете "прошивкой" есть некий микрокод на языке более низкого уровня, который во время инициализации блока DSP заносится в него.
Этот микрокод обычно не изменяют - за этот вариант говорит то, что имена файлов и имя папки на камерах с процессором Ambarella одинаковое (совпадает) на разных камерах.
Вот стирает файлы самые старые - точно прошивка, поэтому и дикие (относительно гладкой работы FULL HD кодирования) паузы между фрагментами.
PS. У Вас зависает в какой стадии ? В процессе закрытия файла ? или в процессе записи. Может не стоит голову ломать принципом работы в той части, которая функционирует исправно? Все равно, вряд ли у Вас есть опыт программирования под ARM на языке C.