Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
ADV7180 и Video4Linux2 - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Embedded Linux
ADV7180 и Video4Linux2
mibin
Добавлено 12.01.2013 17:28 Сообщение: 31
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Все отлично работает :) камера кажет все круто...а пароль от FTP можно все-таки на почту? А-то я листок пришедший вместе с платой и плагами посеял :) mibingm@gmail.com
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 12.01.2013 18:06 Сообщение: 32
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Странно теперь я пытаюсь старую прошивку накатить и фигня какая-то теперь.
Вот лог загрузки.
Ядро не стартует панику выдает теперь какую-то.
Код
CPU: Freescale i.MX53 family 2.1V at 1000 MHz
mx53 pll1: 1000MHz
mx53 pll2: 400MHz
mx53 pll3: 432MHz
mx53 pll4: 455MHz
ipg clock : 66666666Hz
ipg per clock : 33333333Hz
uart clock : 66666666Hz
cspi clock : 108000000Hz
ahb clock : 133333333Hz
axi_a clock : 400000000Hz
axi_b clock : 200000000Hz
emi_slow clock: 133333333Hz
ddr clock : 400000000Hz
esdhc1 clock : 80000000Hz
esdhc2 clock : 80000000Hz
esdhc3 clock : 80000000Hz
esdhc4 clock : 80000000Hz
nfc clock : 33333333Hz
Board: MX53-SK Rev. A
Boot Reason: [unknown]
Boot Device: NAND
DRAM: 256 MB
NAND: Manufacturer : Samsung (0xec)
Device Code : 0xda
Cell Technology : SLC
Chip Size : 256 MiB
Pages per Block : 64
Page Geometry : 2048+64
ECC Strength : 4 bits
ECC Size : 512 B
Data Setup Time : 20 ns
Data Hold Time : 10 ns
Address Setup Time: 20 ns
GPMI Sample Delay : 6 ns
tREA : Unknown
tRLOH : Unknown
tRHOH : Unknown
Description : K9F2G08U0A
Bad block table found at page 131008, version 0x01
Bad block table found at page 130944, version 0x01
nand_read_bbt: Bad block at 0x000000600000
nand_read_bbt: Bad block at 0x0000014a0000
nand_read_bbt: Bad block at 0x000002440000
nand_read_bbt: Bad block at 0x000005d20000
nand_read_bbt: Bad block at 0x00000f060000
256 MiB
MMC: FSL_ESDHC: 0
In: serial
Out: serial
Err: serial
Net: FEC0 [PRIME]
Hit any key to stop autoboot: 0

NAND read: device 0 offset 0x1a00000, size 0x5e0000
6160384 bytes read: OK
## Booting kernel from Legacy Image at 70800000 ...
Image Name: linux-2.6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2480204 Bytes = 2.4 MB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Linux version 2.6.35.3-1129-g691c08a (root@imx535-bld) (gcc version 4.4.1 (Sourc
ery G++ Lite 2009q3-67) ) #299 PREEMPT Sat Oct 20 11:21:50 UTC 2012
CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Freescale MX53 LOCO Board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 56896
Kernel command line: noinitrd console=ttymxc0,115200 ubi.mtd=1 root=ubi0:nandfs
rw rootfstype=ubifs video=mxcdi0fb:RGB888,SK-800x480-LVDS video=mxcdi1fb:RGB888,
SK-800x480-LVDS di0_primary ldb=di0
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 224MB = 224MB total
Memory: 222312k/222312k available, 7064k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xf9e00000 - 0xffe00000 ( 96 MB)
vmalloc : 0x8e800000 - 0xf4000000 (1624 MB)
lowmem : 0x80000000 - 0x8e000000 ( 224 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.init : 0x80008000 - 0x80028000 ( 128 kB)
.text : 0x80028000 - 0x80472000 (4392 kB)
.data : 0x80490000 - 0x804ccf40 ( 244 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:368
MXC GPIO hardware
MXC IRQ initialized
MXC_Early serial console at MMIO 0x53fbc000 (options '115200')
bootconsole [ttymxc0] enabled
Console: colour dummy device 80x30
Calibrating delay loop... 999.42 BogoMIPS (lpj=4997120)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
regulator: dummy:
NET: Registered protocol family 16
i.MX IRAM pool: 128 KB@0x8e840000
IRAM READY
FEC PHY freq 50000000
CPU is i.MX53 Revision 2.1
Using SDMA I.API
MXC DMA API initialized
IMX usb wakeup probe
IMX usb wakeup probe
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
Advanced Linux Sound Architecture Driver Version 1.0.23.
Switching to clocksource mxc_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
LPMode driver module loaded
Static Power Management for Freescale i.MX5
PM driver module loaded
sdram autogating driver module loaded
Bus freq driver module loaded
DI0 is primary
mxc_dvfs_core_probe
regulator: get() with no identifier
mxc_dvfs_core_probe: failed to get gp regulator
DVFS driver module loaded
i.MXC CPU frequency driver
regulator: get() with no identifier
mxc_cpufreq_driver_init: failed to get gp regulator
DVFS PER driver module loaded
msgmni has been set to 434
alg: No test for stdrng (krng)
cryptodev: driver loaded.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
regulator: get() with no identifier
mxc_ipu mxc_ipu: Channel already disabled 9
mxc_ipu mxc_ipu: Channel already uninitialized 9
Console: switching to colour frame buffer device 100x30
mxc_ipu mxc_ipu: Channel already disabled 7
mxc_ipu mxc_ipu: Channel already uninitialized 7
mxc_ipu mxc_ipu: Channel already disabled 10
mxc_ipu mxc_ipu: Channel already uninitialized 10
Serial: MXC Internal UART driver
mxcintuart.0: ttymxc0 at MMIO 0x53fbc000 (irq = 31) is a Freescale i.MX
console [ttymxc0] enabled, bootconsole disabled
console [ttymxc0] enabled, bootconsole disabled
mxcintuart.1: ttymxc1 at MMIO 0x53fc0000 (irq = 32) is a Freescale i.MX
mxcintuart.2: ttymxc2 at MMIO 0x5000c000 (irq = 33) is a Freescale i.MX
mxcintuart.3: ttymxc3 at MMIO 0x53ff0000 (irq = 13) is a Freescale i.MX
mxcintuart.4: ttymxc4 at MMIO 0x63f90000 (irq = 86) is a Freescale i.MX
loop: module loaded
NO SATA device is found, relase resource!
MXC MTD nand Driver 3.0
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bi
t)
RedBoot partition parsing not available
Creating 2 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000002000000 : "bootloader and kernel"
0x000002000000-0x000010000000 : "nand.rootfs"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI: attached mtd1 to ubi0
UBI: MTD device name: "nand.rootfs"
UBI: MTD device size: 224 MiB
UBI: number of good PEBs: 1785
UBI: number of bad PEBs: 7
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 1
UBI: available PEBs: 138
UBI: total number of reserved PEBs: 1647
UBI: number of PEBs reserved for bad PEB handling: 17
UBI: max/mean erase counter: 49/24
UBI: image sequence number: 1990369349
UBI: background thread "ubi_bgt0d" started, PID 473
vcan: Virtual CAN interface driver
flexcan netdevice driver
flexcan imx53-flexcan.0: device registered (reg_base=8ea10000, irq=82)
flexcan imx53-flexcan.1: device registered (reg_base=8ea18000, irq=83)
CAN device driver interface
FEC Ethernet Driver
fec_enet_mii_bus: probed
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 18, io base 0x53f80000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 14, io base 0x53f80200
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapter
s
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
spi0.0 supply vcc not found, using dummy regulator
ads7846 spi0.0: touchscreen, irq 214
input: ADS7843 Touchscreen as /devices/platform/spi_gpio.0/spi0.0/input/input0
spi1.0 supply vcc not found, using dummy regulator
ads7846 spi1.0: touchscreen, irq 211
input: ADS7843 Touchscreen as /devices/platform/spi_gpio.1/spi1.0/input/input1
spi2.0 supply vcc not found, using dummy regulator
ads7846 spi2.0: touchscreen, irq 166
input: ADS7843 Touchscreen as /devices/platform/spi_gpio.2/spi2.0/input/input2
rtc-ds1307 1-0068: rtc core: registered ds1338 as rtc0
rtc-ds1307 1-0068: 56 bytes nvram
mxc_rtc mxc_rtc.0: rtc core: registered mxc_rtc as rtc1
i2c /dev entries driver
Linux video capture interface: v2.00
mxc_v4l2_output mxc_v4l2_output.0: Registered device video1
MXC WatchDog Driver 2.0
MXC Watchdog # 0 Timer: initial timeout 60 sec
VPU initialized
mxc_asrc registered
gpu mmu enabled
mxsdhci: MXC Secure Digital Host Controller Interface driver
mxsdhci: MXC SDHCI Controller Driver.
mmc0: SDHCI detect irq 206 irq 1 INTERNAL DMA
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
No device for DAI tlv320aic23
No device for DAI imx-ssi-1-0
No device for DAI imx-ssi-1-1
No device for DAI imx-ssi-2-0
No device for DAI imx-ssi-2-1
AIC23 Audio Codec 0.1
DMA Sound Buffer Allocated: Playback UseIram=1 ext_ram=0 buf->addr=f8016000 buf-
>area=8e856000 size=24576
DMA Sound Buffer Allocated: Capture UseIram=1 ext_ram=1 buf->addr=7d228000 buf-
>area=fa8ac000 size=24576
asoc: tlv320aic23 <-> imx-ssi-2-0 mapping ok
ALSA device list:
#0: imx-3stack (tlv320aic23)
TCP cubic registered
NET: Registered protocol family 17
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
rtc-ds1307 1-0068: setting system clock to 2000-01-01 01:32:43 UTC (946690363)
UBIFS: recovery needed
UBIFS: recovery completed
UBIFS: mounted UBI device 0, volume 0, name "nandfs"
UBIFS: file system size: 208373760 bytes (203490 KiB, 198 MiB, 1615 LEBs)
UBIFS: journal size: 10450944 bytes (10206 KiB, 9 MiB, 81 LEBs)
UBIFS: media format: w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root: 4952683 bytes (4836 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:10.
Freeing init memory: 128K
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
See Linux Documentation/init.txt for guidance.
[<8002d48c>] (unwind_backtrace+0x0/0xec) from [<80363744>] (panic+0x6c/0xe4)
[<80363744>] (panic+0x6c/0xe4) from [<80028580>] (init_post+0xac/0xd4)
[<80028580>] (init_post+0xac/0xd4) from [<80008484>] (kernel_init+0x124/0x168)
[<80008484>] (kernel_init+0x124/0x168) from [<800299c0>] (kernel_thread_exit+0x0
/0x8)
mmc0: Timeout waiting for hardware interrupt.
mxsdhci: ============== REGISTER DUMP ==============
mxsdhci: Sys addr: 0x00000000 | Version: 0x00001201
mxsdhci: Blk size: 0x00000000 | Blk cnt: 0x00000001
mxsdhci: Argument: 0x40018000 | Trn mode: 0x29020000
mxsdhci: Present: 0xff880008 | Host ctl: 0x00000121
mxsdhci: Clock: 0x000010ff
mxsdhci: Int stat: 0x00000000
mxsdhci: Int enab: 0x117f010f | Sig enab: 0x117f000f
mxsdhci: Caps: 0x07f30000
mxsdhci: ===========================================
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 12.01.2013 19:50 Сообщение: 33
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Не знаю в чем была проблема, но помогла установка rootfs.tar.gz с флешки, а потом тупо делал обычную установку командой run system_update.
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 30.01.2013 08:53 Редактировалось 30.01.2013 08:53 Сообщение: 34
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
По ходу проекта, встал вопрос, а как проводить переключения между камерами?
Там же переключение через интерфейс i2c происходит как я понимаю, но вот я не очень понимаю как программно это сделать, есть какой-нибудь тестовый пример?
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 30.01.2013 10:15 Сообщение: 35
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Нашел в описании v4l2 вот такой код:
Код
Example 1.2. Switching to the first video input

int index;

index = 0;

if (-1 == ioctl (fd, VIDIOC_S_INPUT, &index)) {
perror ("VIDIOC_S_INPUT");
exit (EXIT_FAILURE);
}


Не могу попробовать его, т.к. на работе сейчас, но может быть кто-то знает сработает этот вариант для плага или нет?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 30.01.2013 10:55 Сообщение: 36
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
По ходу проекта, встал вопрос, а как проводить переключения между камерами?
Там же переключение через интерфейс i2c происходит как я понимаю, но вот я не очень понимаю как программно это сделать, есть какой-нибудь тестовый пример?

посмотрите в драйвере или ищите в sysfs (/sys)..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 30.01.2013 11:36 Сообщение: 37
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Цитата
посмотрите в драйвере или ищите в sysfs (/sys)..


Что именно мне в sysfs нужно поискать? i2c?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 30.01.2013 12:37 Сообщение: 38
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Что именно мне в sysfs нужно поискать? i2c?

в зависимости от реализации поддержки в драйвере..
если драйвер не занимает адрес на i2c, то можно порулить чипом через i2cset/i2cget
если занимает, то искать где в /sys сформированы файлы устройства отображаемые драйвером, возможно в них есть программный переключатель коммутатора входа и туда можно "поэхать"
или смотреть в исходниках драйвера п/п, которые (возможно) занимаются этим же..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
leh
Добавлено 30.01.2013 13:47 Сообщение: 39
leh
5

Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Выбор канала прописан в драйвере ADV7180 жёстко:
Код

static void adv7180_hard_reset(bool cvbs)
{
dev_dbg(&adv7180_data.i2c_client->dev,
"In adv7180:adv7180_hard_reset\n");

if (cvbs) {
/* Set CVBS input on AIN1 */
adv7180_write_reg(ADV7180_INPUT_CTL, 0x00);
} else {
/*
* Set YPbPr input on AIN1,4,5 and normal
* operations(autodection of all stds).
*/
adv7180_write_reg(ADV7180_INPUT_CTL, 0x09);
}
...


Запись в регистр ADV7180_INPUT_CTL выбирает канал: 0 - AIN1, 1 - AIN2 и т.д.
По доброму, конечно, нужно выбор канала вынести в вызов ioctl VIDIOC_S_INPUT, который в драйвере ADV7180 вообще не реализован. Однако в вышестоящем драйвере mxc_v4l2_capture.c по этому вызову выбирается путь картинки: 0 - CSI->IC->MEM, 1 - CSI->MEM. Так что нужно их разделять побитно или жёстко выбрать один путь, а рулить мультиплексором чипа.
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 30.01.2013 14:34 Сообщение: 40
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Так, это все объяснение для умных людей, а вот если как для идиота который это все видит первый раз в жизни, куда смотреть че делать?:)

Из этого всего я понял что VIDIOC_S_INPUT не должен сработать, но тогда что? Какие методы могут мне помочь в решении проблемы?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux