|
AVR32: AP7000: Image Sensor Interface (ISI), Как переключаются буферы видеокадров? |
|
|
|
Jan 12 2008, 13:39
|
Участник

Группа: Новичок
Сообщений: 51
Регистрация: 19-06-07
Из: Республика Беларусь, г.Витебск
Пользователь №: 28 538

|
Пытаюсь подключить к STK1000 цифровую камеру с использованием имеющегося на борту AP7000 Image Sensor Interface (ISI). Не совсем понимаю, как переключать буферы, в которые будут писаться видеокадры. Далее нужно вывести на LCD то, что в этих самых буферах находится с использованием встроенного LCD-контроллера (LCDC).
Может кто-нибудь подскажет, как вообще обрабатывается видеоинформация с использованием нескольких буферов.
Сообщение отредактировал Busel Roman - Jan 12 2008, 13:40
|
|
|
|
|
 |
Ответов
|
Jan 16 2008, 15:22
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
У каждого типа памяти свое заранее известное адресное пространство. Во-первых, Вы можете указать статической переменной (тому же буферу) абсолютный адрес, по которому она должна располагаться оператором @. Например: Код __no_init unsigned int LCD_BUFFER1[1024] @ 0x20000000 __no_init unsigned int LCD_BUFFER2[1024] @ 0x20000400 Этот примр создаст две статических переменных - массивы по 1024 беззнаковых интовых значений. А во-вторых можете указать не конкретный адрес, а только сегмент, внутри которого линкер уже сам выберет место размещения: Код __no_init unsigned int LCD_BUFFER1[1024] @ "SDRAM_SEGMENT" __no_init unsigned int LCD_BUFFER2[1024] @ "SDRAM_SEGMENT" Это создаст две статические переменные - буфера - в сегменте SDRAM_SEGMENT по адресу, выбранному линкером. Для ограничения адресного пространства Вы можете просто определить свой сегмент с заданными адресными границами и при создании переменных указывать его. Это все справедливо для IAR ARM, но нечто подобное должно быть и в других средах. Смотрите хелп на компилятор, раздел наподобие "Controling data placement in memory"
|
|
|
|
|
Jan 16 2008, 16:05
|
Участник

Группа: Новичок
Сообщений: 51
Регистрация: 19-06-07
Из: Республика Беларусь, г.Витебск
Пользователь №: 28 538

|
Программирую в среде AVR32Studio. Она использует GCC.
Кто знает, направьте, куда смотреть, какие файлы содержат описание "Controling data placement in memory"?
А также, где найти какие и как в GCC применяются директивы (может дополнительные знаки, типа @) при управлении распределением памяти.
|
|
|
|
|
Jan 16 2008, 21:21
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Busel Roman @ Jan 16 2008, 19:05)  Программирую в среде AVR32Studio. Она использует GCC. Кто знает, направьте, куда смотреть, какие файлы содержат описание "Controling data placement in memory"? А также, где найти какие и как в GCC применяются директивы (может дополнительные знаки, типа @) при управлении распределением памяти. В gcc пишут так int myvar __attribute__((section("mysect1"))); char myarr[256] __attribute__((section("mysect2"))); ну и линкеру не забываем указать где находятся эти Ваши секции mysect1,mysect2,...
|
|
|
|
|
Jan 17 2008, 08:01
|
Участник

Группа: Новичок
Сообщений: 51
Регистрация: 19-06-07
Из: Республика Беларусь, г.Витебск
Пользователь №: 28 538

|
Цитата(singlskv @ Jan 16 2008, 23:21)  ну и линкеру не забываем указать где находятся эти Ваши секции mysect1,mysect2,... Я прошу прощения за глупые вопросы, но как это указать линкеру? Может для AP7000 где-то в файлах GCC уже указаны все возможные адресные пространства (согласно datasheet на этот микроконтроллер). Я всего-лишь хочу создать кадровый буфер во внешней SDRAM, подключенной аппаратно в моем STK1000.
Сообщение отредактировал Busel Roman - Jan 17 2008, 08:02
|
|
|
|
|
Jan 17 2008, 08:49
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Busel Roman @ Jan 17 2008, 11:01)  Я прошу прощения за глупые вопросы, но как это указать линкеру? -Wl,--section-start=mysect=0x10000000 ну или другой нужный адрес подставить Цитата Может для AP7000 где-то в файлах GCC уже указаны все возможные адресные пространства В хидерах на AP7000 ищите такие дефайны: AVR32_EBI1_ADDRESS
|
|
|
|
|
Jan 17 2008, 09:54
|
Участник

Группа: Новичок
Сообщений: 51
Регистрация: 19-06-07
Из: Республика Беларусь, г.Витебск
Пользователь №: 28 538

|
Цитата(singlskv @ Jan 17 2008, 10:49)  В хидерах на AP7000 ищите такие дефайны: AVR32_EBI1_ADDRESS Спасибо, нашел - то что требовалось. Файл "ap7000.h" Только вот что-то все-равно не так. Где бы почитать про аттрибуты GCC?
|
|
|
|
|
Jan 17 2008, 10:50
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Busel Roman @ Jan 17 2008, 12:54)  Только вот что-то все-равно не так. Где бы почитать про аттрибуты GCC? А что не так ? Посмотрите в файле gcc.info ну или погуглите по словам __attribute__ section P.S. А Вы SDRAM инициализируете ?
|
|
|
|
Сообщений в этой теме
Busel Roman AVR32: AP7000: Image Sensor Interface (ISI) Jan 12 2008, 13:39 AndyBig ЦитатаМожет кто-нибудь подскажет, как вообще обраб... Jan 12 2008, 22:52 Busel Roman Цитата(AndyBig @ Jan 13 2008, 00:52) Скаж... Jan 14 2008, 07:27 AndyBig Заглянул сейчас в даташит, вроде бы там все распис... Jan 14 2008, 08:30 Busel Roman Спасибо тебе, добрый человек!
Когда первый раз... Jan 14 2008, 09:32 AndyBig ЦитатаА как думаете, зачем проверять регистр DMAFR... Jan 15 2008, 12:56 Busel Roman Еще вот такой вопрос:
Как в С получить численное... Jan 16 2008, 07:34 dimitryl char *buf; // указатель
... Jan 16 2008, 08:01 Busel Roman А как можно установить определенный диапазон адрес... Jan 16 2008, 09:52 dimitryl Указатель это просто переменная, если нужно чтоб о... Jan 16 2008, 11:35 Busel Roman Цитата(dimitryl @ Jan 16 2008, 13:35) Ука... Jan 16 2008, 13:27 dimitryl Самый простой способ - статически выделить память ... Jan 16 2008, 14:19 Busel Roman Цитата(dimitryl @ Jan 16 2008, 16:19) Сам... Jan 16 2008, 14:42       Busel Roman Цитата(singlskv @ Jan 17 2008, 12:50) А ч... Jan 17 2008, 13:33        singlskv Цитата(Busel Roman @ Jan 17 2008, 16:33) ... Jan 17 2008, 16:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|