Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX
подключение SK-VideoADC-Plug
Slavian
Добавлено 05.08.2010 10:32 Редактировалось 05.08.2010 11:09 Сообщение: 21
Slavian
0

Пункты: 1888
Регистрация: 21.05.2010
Цитата
Тоесть ситуация прямо противоположная - при компиляции он видел прототипы ф-ций - все заголовки на месте а при линковке обломился.


В файле cloc.c так и написано

Цитата

#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS

реализация
clk_set_parent
clk_set_rate'

#endif


поэтому если стоит в конфиге #CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set то реализация функций не будет скомпилирована


У меня еще такой вопрос, если i2cdetect не обнаружила подключенных устройств по i2c, я так понимаю это может быть связано с мертвой платой АЦП. Как ее можно проверить на “живучесть”.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.08.2010 23:22 Сообщение: 22
sasamy
4.70

Пункты: 77333
Регистрация: 14.08.2009
Цитата

я так понимаю это может быть связано с мертвой платой АЦП.


Сомневаюсь что вы так быстро убили плату - смотрите конфиг ядра - пробуйте не twi а програмную эмуляцию i2c - это более предпочтительный вариант для sam9260 судя по всему.
Спуститься к концу Подняться к началу
Персональная информация
Slavian
Добавлено 06.08.2010 09:00 Сообщение: 23
Slavian
0

Пункты: 1888
Регистрация: 21.05.2010
Цитата

Сомневаюсь что вы так быстро убили плату - смотрите конфиг ядра - пробуйте не twi а програмную эмуляцию i2c - это более предпочтительный вариант для sam9260 судя по всему.


Подскажите каким именно конфигом включается эмуляция i2c просто не могу найти ни чего похожего, или нужен какой то дополнительный патч.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 06.08.2010 11:23 Редактировалось 06.08.2010 11:27 Сообщение: 24
Pavel Ivanchenko
Admin
4.39

Пункты: 91534
Регистрация: 24.03.2009
Пол: Мужчина
"Убить чип" нужно очень сильно постараться, скорее всего у Вас действительно с I2C шиной какие то нестыковки.
Проверить работоспособность просто - посмотреть осциллом - с плага должны идти синхроимпульсы.
Вобще, я бы на вашем месте пока не озадачивался конфигом чипа по I2C, он довольно умен и сам автоматом определяет тип видеосигнала, по умолчанию, работает по 8-ми битной шине.
Во всяком случае, в единственной своей демке для этого плага (для платы SK-LPC2478-S3E, где он через FPGA подключается), я его конфиги по I2C вобще не трогал.

Теперь по существу моих упражнений, действительно, включил CONFIG_AT91_PROGRAMMABLE_CLOCKS, ядро собирается, но шайтан-беда при запуске падает в панику и как раз на вызове функций isi_set_clk и at91_add_device_isi
Код
Linux version 2.6.34.1 (user@debian) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #60 Wed Aug 4 00:09:22 EDT 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9G45-EKES
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: root=/dev/ram0 rw initrd=0x73100000,0x800000 console=ttyS0,115200 mem=64M
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 51872k/51872k available, 13664k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffa00000 - 0xffe00000 ( 4 MB)
vmalloc : 0xc4800000 - 0xfee00000 ( 934 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc01b6000 (1720 kB)
.text : 0xc01b6000 - 0xc0476000 (2816 kB)
.data : 0xc048c000 - 0xc04adce0 ( 136 kB)
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is enabled.
NR_IRQS:192
AT91: 160 gpio irqs in 5 banks
Console: colour dummy device 80x30
console [ttyS0] enabled
Calibrating delay loop... 199.47 BogoMIPS (lpj=997376)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Unhandled fault: alignment exception (0x001) at 0x00000026
Internal error: : 1 [#1]
last sysfs file:
Modules linked in:
CPU: 0 Not tainted (2.6.34.1 #60)
PC is at clk_set_parent+0x14/0x8c
LR is at ek_board_init+0xe4/0x128
pc : [<c01c0fe0>] lr : [<c000f70c>] psr: 60000013
sp : c3c19f94 ip : 00000000 fp : 00000000
r10: c04adce0 r9 : c000b678 r8 : c3c18000
r7 : 00000000 r6 : c01b1ea8 r5 : fffffffe r4 : c04905d0
r3 : 0000001f r2 : 80000000 r1 : fffffffe r0 : c04905d0
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 0005317f Table: 70004000 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc3c18270)
Stack: (0xc3c19f94 to 0xc3c1a000)
9f80: c000f70c c0024590 c00247f0
9fa0: c0024530 c000b694 c00247f0 c01b6374 c3c13f60 39315bc8 00000031 00000000
9fc0: 00000000 c0024590 c00247f0 c0024530 00000000 00000000 00000000 00000000
9fe0: 00000000 c00088c8 00000000 00000000 00000000 c01b7dfc 32b79947 ed5dbfe3
[<c01c0fe0>] (clk_set_parent+0x14/0x8c) from [<c000f70c>] (ek_board_init+0xe4/0x128)
[<c000f70c>] (ek_board_init+0xe4/0x128) from [<c000b694>] (customize_machine+0x1c/0x2c)
[<c000b694>] (customize_machine+0x1c/0x2c) from [<c01b6374>] (do_one_initcall+0x2c/0x19c)
[<c01b6374>] (do_one_initcall+0x2c/0x19c) from [<c00088c8>] (kernel_init+0x98/0x144)
[<c00088c8>] (kernel_init+0x98/0x144) from [<c01b7dfc>] (kernel_thread_exit+0x0/0x8)
Code: e1d0c2bc e35c0000 13e0000f 149df004 (e5913028)
---[ end trace 1b75b31a2719ed1c ]---
Kernel panic - not syncing: Attempted to kill init!
[<c01bc41c>] (unwind_backtrace+0x0/0xf4) from [<c01c8bf0>] (panic+0x44/0xcc)
[<c01c8bf0>] (panic+0x44/0xcc) from [<c01cc010>] (do_exit+0x610/0x640)
[<c01cc010>] (do_exit+0x610/0x640) from [<c01ba604>] (die+0x190/0x1b8)
[<c01ba604>] (die+0x190/0x1b8) from [<c01b6330>] (do_DataAbort+0x88/0x9c)
[<c01b6330>] (do_DataAbort+0x88/0x9c) from [<c01b6a2c>] (__dabt_svc+0x4c/0x60)
Exception stack(0xc3c19f48 to 0xc3c19f90)
9f40: c04905d0 fffffffe 80000000 0000001f c04905d0 fffffffe
9f60: c01b1ea8 00000000 c3c18000 c000b678 c04adce0 00000000 00000000 c3c19f94
9f80: c000f70c c01c0fe0 60000013 ffffffff
[<c01b6a2c>] (__dabt_svc+0x4c/0x60) from [<c01c0fe0>] (clk_set_parent+0x14/0x8c)
[<c01c0fe0>] (clk_set_parent+0x14/0x8c) from [<c000f70c>] (ek_board_init+0xe4/0x128)
[<c000f70c>] (ek_board_init+0xe4/0x128) from [<c000b694>] (customize_machine+0x1c/0x2c)
[<c000b694>] (customize_machine+0x1c/0x2c) from [<c01b6374>] (do_one_initcall+0x2c/0x19c)
[<c01b6374>] (do_one_initcall+0x2c/0x19c) from [<c00088c8>] (kernel_init+0x98/0x144)
[<c00088c8>] (kernel_init+0x98/0x144) from [<c01b7dfc>] (kernel_thread_exit+0x0/0x8)
Спуститься к концу Подняться к началу
Персональная информация
Slavian
Добавлено 06.08.2010 11:39 Сообщение: 25
Slavian
0

Пункты: 1888
Регистрация: 21.05.2010
Цитата

Теперь по существу моих упражнений, действительно, включил CONFIG_AT91_PROGRAMMABLE_CLOCKS, ядро собирается, но шайтан-беда при запуске падает в панику и как раз на вызове функций isi_set_clk и at91_add_device_isi


Покажите код isi_set_clk и at91_add_device_isi.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 06.08.2010 11:51 Редактировалось 06.08.2010 11:52 Сообщение: 26
Pavel Ivanchenko
Admin
4.39

Пункты: 91534
Регистрация: 24.03.2009
Пол: Мужчина
Код
/*
* ISI
*/
#ifdef _USE_IMAGE_SENSOR_
static struct isi_platform_data __initdata isi_data = {
.image_hsize = 320,
.image_vsize = 240,
.prev_hsize = 320,
.prev_vsize = 240,
.frate = 7,
.pixfmt = ATMEL_ISI_PIXFMT_YCbYCr,
.capture_v4l2_fmt = V4L2_PIX_FMT_YUYV,
.streaming_v4l2_fmt = V4L2_PIX_FMT_YUYV,
/* to use codec and preview path simultaneously */
.cr1_flags = ISI_FULL,
};

static void __init isi_set_clk(void)
{
struct clk *pck3 = 0;
struct clk *pllb = 0;

// pck3 = clk_get(NULL, "pck1");
pck3 = clk_get(NULL, "pck3");
pllb = clk_get(NULL, "pllb");
/* Sensor MCK Clock */
at91_set_A_periph(AT91_PIN_PB31, 0); /* ISI_MCK */

clk_set_parent(pck3, pllb);
clk_set_rate(pck3, 12000000);
clk_enable(pck3);
}
#endif
pck1 или pck3 - без разницы
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 06.08.2010 12:12 Сообщение: 27
Pavel Ivanchenko
Admin
4.39

Пункты: 91534
Регистрация: 24.03.2009
Пол: Мужчина
Привел к виду, как в патче 2.6.27-at91-exp.2.patch:
Код
+static void __init isi_set_clk(void)
+{
+ struct clk *pck1;
+ struct clk *plla;
+
+ pck1 = clk_get(NULL, "pck1");
+ plla = clk_get(NULL, "plla");
+
+ clk_set_parent(pck1, plla);
+ /* for the sensor ov9655: 10< Fclk < 48, Fclk typ = 24MHz */
+ clk_set_rate(pck1, 25000000);
+ clk_enable(pck1);
+}

продвинулся чуть дальше:
Код
Linux version 2.6.34.1 (user@debian) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #62 Wed Aug 4 00:52:32 EDT 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9G45-EKES
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: root=/dev/ram0 rw initrd=0x73100000,0x800000 console=ttyS0,115200 mem=64M
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 51872k/51872k available, 13664k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffa00000 - 0xffe00000 ( 4 MB)
vmalloc : 0xc4800000 - 0xfee00000 ( 934 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc01b6000 (1720 kB)
.text : 0xc01b6000 - 0xc0475000 (2812 kB)
.data : 0xc048c000 - 0xc04adce0 ( 136 kB)
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is enabled.
NR_IRQS:192
AT91: 160 gpio irqs in 5 banks
Console: colour dummy device 80x30
console [ttyS0] enabled
Calibrating delay loop... 199.47 BogoMIPS (lpj=997376)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
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
Switching to clocksource pit
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
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
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like an initrd
Freeing initrd memory: 8192K
JFFS2 version 2.2. (NAND) , 2001-2006 Red Hat, Inc.
msgmni has been set to 117
io scheduler noop registered (default)
atmel_lcdfb atmel_lcdfb.0: backlight control is not available
atmel_lcdfb atmel_lcdfb.0: 510KiB frame buffer at 72180000 (mapped at ffa00000)Console: switching to colour frame buffer device 60x34
atmel_lcdfb atmel_lcdfb.0: fb0: Atmel LCDC at 0x00500000 (mapped at c4866000),
irq 23
atmel_usart.0: ttyS0 at MMIO 0xfeffee00 (irq = 1) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfff90000 (irq = 8) is a ATMEL_SERIAL
brd: module loaded
loop: module loaded
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 82 at 0x000000a40000
Bad eraseblock 190 at 0x0000017c0000
Bad eraseblock 237 at 0x000001da0000
Bad eraseblock 326 at 0x0000028c0000
Bad eraseblock 334 at 0x0000029c0000
Bad eraseblock 388 at 0x000003080000
Bad eraseblock 771 at 0x000006060000
Bad eraseblock 940 at 0x000007580000
Bad eraseblock 1512 at 0x00000bd00000
Bad eraseblock 1850 at 0x00000e740000
Creating 2 MTD partitions on "atmel_nand":
0x000000000000-0x000001000000 : "Partition 1"
0x000001000000-0x000010000000 : "Partition 2"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffa4000 (irq 14)
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfffbc000 irq 25 (00:1f:f2:00:00:00)
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ffffffff:01, irq=-1)
usbmon: debugfs is not available
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
atmel-ehci atmel-ehci: Atmel EHCI UHP HS
atmel-ehci atmel-ehci: new USB bus registered, assigned bus number 1
atmel-ehci atmel-ehci: irq 22, io mem 0x00800000
atmel-ehci atmel-ehci: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 2
at91_ohci at91_ohci: irq 22, io mem 0x00700000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
atmel_usba_udc atmel_usba_udc: MMIO registers at 0xfff78000 mapped at c486a000
atmel_usba_udc atmel_usba_udc: FIFO at 0x00600000 mapped at c4900000
mice: PS/2 mouse device common for all mice
rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
IRQ 1/rtc0: IRQF_DISABLED is not guaranteed on shared IRQs
rtc-at91sam9 at91_rtt.0: rtc0: SET TIME!
i2c /dev entries driver
i2c-gpio i2c-gpio.0: using pins 52 (SDA) and 53 (SCL)
Linux video capture interface: v2.00
atmel_isi atmel_isi: Reading configuration
atmel_isi atmel_isi: video buffer: 155648 bytes at ffae8000 (phys 722c0000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffb0e000 (phys 72380000)
atmel_isi atmel_isi: capture buffer: 405504 bytes at ffa85000 (phys 0x72300000)Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1]
last sysfs file:
Modules linked in:
CPU: 0 Not tainted (2.6.34.1 #62)
PC is at _kfifo_init+0x4/0x10
LR is at kfifo_alloc+0x40/0xa0
pc : [<c01dcf64>] lr : [<c01dd6d4>] psr: a0000013
sp : c3c19ec0 ip : feffee00 fp : c04a9d78
r10: c0490e88 r9 : c0490e80 r8 : c227b008
r7 : 00000058 r6 : c227b000 r5 : 00000000 r4 : 00000008
r3 : 00000000 r2 : 00000008 r1 : c2258740 r0 : 00000000
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 0005317f Table: 70004000 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc3c18270)
Stack: (0xc3c19ec0 to 0xc3c1a000)
9ec0: c0455bfc 72300000 00000002 c001e210 ffa85000 72300000 c227b618 c227b720
9ee0: c0490a8c c0491ce8 00000000 00025800 c3c57668 c0490e88 c0490ebc c04a9d8c
9f00: c04c4f40 c2254c20 00000000 c049dbf0 00000000 c02d8ed4 c04a9d8c c02d7ea0
9f20: c3c044d4 c0490e88 c0490ebc c04a9d8c c02d8118 c02d819c 00000000 c3c19f48
9f40: c04a9d8c c02d72cc c3c044d8 c3c3c650 c3c044a8 c04a9d78 c00247a0 c04a9d8c
9f60: 00000000 c02d7a1c c04324c4 c04a9a90 c04a9d78 c00247a0 c04a9d8c 00000000
9f80: c3c18000 c001dc04 c04adce0 c02d837c c04a9d78 c00247a0 c00244e0 00000000
9fa0: c3c18000 c02d9134 c002474c c01b6374 c3c13f60 39315bc8 00000031 00000000
9fc0: 00000000 c002474c c00247a0 c00244e0 00000000 00000000 00000000 00000000
9fe0: 00000000 c00088c8 00000000 00000000 00000000 c01b7dfc 32b79947 ed5dbfe2
[<c01dcf64>] (_kfifo_init+0x4/0x10) from [<c01dd6d4>] (kfifo_alloc+0x40/0xa0)
[<c01dd6d4>] (kfifo_alloc+0x40/0xa0) from [<c001e210>] (atmel_isi_probe+0x5f8/0x7f0)
[<c001e210>] (atmel_isi_probe+0x5f8/0x7f0) from [<c02d8ed4>] (platform_drv_probe+0x1c/0x24)
[<c02d8ed4>] (platform_drv_probe+0x1c/0x24) from [<c02d7ea0>] (driver_probe_device+0x88/0x180)
[<c02d7ea0>] (driver_probe_device+0x88/0x180) from [<c02d819c>] (__driver_attach+0x84/0x88)
[<c02d819c>] (__driver_attach+0x84/0x88) from [<c02d72cc>] (bus_for_each_dev+0x54/0x80)
[<c02d72cc>] (bus_for_each_dev+0x54/0x80) from [<c02d7a1c>] (bus_add_driver+0xa0/0x240)
[<c02d7a1c>] (bus_add_driver+0xa0/0x240) from [<c02d837c>] (driver_register+0x58/0x13c)
[<c02d837c>] (driver_register+0x58/0x13c) from [<c02d9134>] (platform_driver_probe+0x18/0x64)
[<c02d9134>] (platform_driver_probe+0x18/0x64) from [<c01b6374>] (do_one_initcall+0x2c/0x19c)
[<c01b6374>] (do_one_initcall+0x2c/0x19c) from [<c00088c8>] (kernel_init+0x98/0x144)
[<c00088c8>] (kernel_init+0x98/0x144) from [<c01b7dfc>] (kernel_thread_exit+0x0/0x8)
Code: e5812010 e121f00e e49df004 e3a03000 (e880000e)
---[ end trace f5fee82d0f7fa97f ]---
Kernel panic - not syncing: Attempted to kill init!
[<c01bc41c>] (unwind_backtrace+0x0/0xf4) from [<c01c8bf0>] (panic+0x44/0xcc)
[<c01c8bf0>] (panic+0x44/0xcc) from [<c01cc010>] (do_exit+0x610/0x640)
[<c01cc010>] (do_exit+0x610/0x640) from [<c01ba604>] (die+0x190/0x1b8)
[<c01ba604>] (die+0x190/0x1b8) from [<c01bd34c>] (__do_kernel_fault+0x64/0x84)
[<c01bd34c>] (__do_kernel_fault+0x64/0x84) from [<c01bd4a4>] (do_page_fault+0x138/0x1dc)
[<c01bd4a4>] (do_page_fault+0x138/0x1dc) from [<c01b62e0>] (do_DataAbort+0x38/0x9c)
[<c01b62e0>] (do_DataAbort+0x38/0x9c) from [<c01b6a2c>] (__dabt_svc+0x4c/0x60)
Exception stack(0xc3c19e78 to 0xc3c19ec0)
9e60: 00000000 c2258740
9e80: 00000008 00000000 00000008 00000000 c227b000 00000058 c227b008 c0490e80
9ea0: c0490e88 c04a9d78 feffee00 c3c19ec0 c01dd6d4 c01dcf64 a0000013 ffffffff
[<c01b6a2c>] (__dabt_svc+0x4c/0x60) from [<c01dcf64>] (_kfifo_init+0x4/0x10)
[<c01dcf64>] (_kfifo_init+0x4/0x10) from [<c01dd6d4>] (kfifo_alloc+0x40/0xa0)
[<c01dd6d4>] (kfifo_alloc+0x40/0xa0) from [<c001e210>] (atmel_isi_probe+0x5f8/0x7f0)
[<c001e210>] (atmel_isi_probe+0x5f8/0x7f0) from [<c02d8ed4>] (platform_drv_probe+0x1c/0x24)
[<c02d8ed4>] (platform_drv_probe+0x1c/0x24) from [<c02d7ea0>] (driver_probe_device+0x88/0x180)
[<c02d7ea0>] (driver_probe_device+0x88/0x180) from [<c02d819c>] (__driver_attach+0x84/0x88)
[<c02d819c>] (__driver_attach+0x84/0x88) from [<c02d72cc>] (bus_for_each_dev+0x54/0x80)
[<c02d72cc>] (bus_for_each_dev+0x54/0x80) from [<c02d7a1c>] (bus_add_driver+0xa0/0x240)
[<c02d7a1c>] (bus_add_driver+0xa0/0x240) from [<c02d837c>] (driver_register+0x58/0x13c)
[<c02d837c>] (driver_register+0x58/0x13c) from [<c02d9134>] (platform_driver_probe+0x18/0x64)
[<c02d9134>] (platform_driver_probe+0x18/0x64) from [<c01b6374>] (do_one_initcall+0x2c/0x19c)
[<c01b6374>] (do_one_initcall+0x2c/0x19c) from [<c00088c8>] (kernel_init+0x98/0x144)
[<c00088c8>] (kernel_init+0x98/0x144) from [<c01b7dfc>] (kernel_thread_exit+0x0/0x8)
Спуститься к концу Подняться к началу
Персональная информация
Slavian
Добавлено 06.08.2010 12:15 Сообщение: 28
Slavian
0

Пункты: 1888
Регистрация: 21.05.2010
Цитата
pck1 или pck3 - без разницы


Судя по логу выше падает в clk_set_parent а там сразу идет обращение к указателю
Код

int clk_set_parent(struct clk *clk, struct clk *parent)
if (clk->users)
return -EBUSY;
if (!clk_is_primary(parent) || !clk_is_programmable(clk))
return -EINVAL;

if (cpu_is_at91sam9rl() && parent->id == AT91_PMC_CSS_PLLB)
return -EINVAL;



попробуйте в isi_set_clk сделать проверку на ERR_PTR(-ENOENT) типа
Код

if(pck3 == ERR_PTR(-ENOENT))
{
////что нибудь написать
}
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 06.08.2010 12:25 Сообщение: 29
Pavel Ivanchenko
Admin
4.39

Пункты: 91534
Регистрация: 24.03.2009
Пол: Мужчина
Взял Ваш драйвер (до этого "самодельный" был) - ядро нормально загрузилось:
Код
i2c /dev entries driver
i2c-gpio i2c-gpio.0: using pins 52 (SDA) and 53 (SCL)
Linux video capture interface: v2.00
AT91: atmel_isi_init_module
AT91: atmel_isi_probe
atmel_isi atmel_isi: Reading configuration
atmel_isi atmel_isi: video buffer: 155648 bytes at ffb70000 (phys 722c0000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffb96000 (phys 73800000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffbbc000 (phys 73840000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffbe2000 (phys 73880000)
atmel_isi atmel_isi: capture buffer: 962560 bytes at ffa85000 (phys 0x72300000)kfifo_alloc
atmel_isi atmel_isi: Atmel ISI V4L2 device at 0xfffb4000
Спуститься к концу Подняться к началу
Персональная информация
Slavian
Добавлено 06.08.2010 12:39 Редактировалось 06.08.2010 12:40 Сообщение: 30
Slavian
0

Пункты: 1888
Регистрация: 21.05.2010
[quote]
продвинулся чуть дальше:
Код

atmel_isi atmel_isi: Reading configuration
atmel_isi atmel_isi: video buffer: 155648 bytes at ffae8000 (phys 722c0000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffb0e000 (phys 72380000)
atmel_isi atmel_isi: capture buffer: 405504 bytes at ffa85000 (phys 0x72300000)Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1]
last sysfs file:
[/quote]

это уже грохнулось int __init atmel_isi_probe(struct platform_device *pdev)

скорее всего на
if (kfifo_alloc(&isi->grabq, sizeof(int) * video_buffers, GFP_KERNEL))

int kfifo_alloc(struct kfifo *fifo, unsigned int size, gfp_t gfp_mask) в свою очередь дергает

_kfifo_init(fifo, buffer, size); где идет прямое обращение к указателю fifo

Код

static void _kfifo_init(struct kfifo *fifo, void *buffer,
unsigned int size)
{
fifo->buffer = buffer;
fifo->size = size;

kfifo_reset(fifo);
}
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX