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

mike20

Участник
  • Постов

    5
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Контакты

  • ICQ
    Array
  1. Пробовал от Linux4sam ядро linux-2.6.22-at91sam9260ek.bin. Правда у меня не стоит DataFlash а толко NAND-Flash. Результат похожий: Starting kernel ... Uncompressing Linux........................................................................... .............. done, booting the kernel. Linux version 2.6.22 (pvilchez@bendor) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #1 Thu Sep 13 16:03:16 CEST 2007 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 Machine: Atmel AT91SAM9260-EK Memory policy: ECC disabled, Data cache writeback Clocks: CPU 198 MHz, master 99 MHz, main 18.432 MHz CPU0: D VIVT write-back cache CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets Built 1 zonelists. Total pages: 16256 Kernel command line: mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw AT91: 96 gpio irqs in 3 banks PID hash table entries: 256 (order: 8, 1024 bytes) Console: colour dummy device 80x30 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: 58940KB available (2504K code, 233K data, 112K init) Unable to handle kernel paging request at virtual address e3843080 pgd = c0004000 [e3843080] *pgd=00000000 Internal error: Oops: 5 [#1] Modules linked in: CPU: 0 %(%.*s) PC is at do_tune_cpucache+0x78/0x264 LR is at alloc_arraycache+0x24/0x3c pc : [<c0074ec4>] lr : [<c0074e34>] psr: a00000d3 sp : c0297f08 ip : c037c360 fp : c0297f2c r10: 00000028 r9 : 00000000 r8 : 00000000 r7 : 00000078 r6 : c0378680 r5 : c037f6c0 r4 : e3843080 r3 : 00000000 r2 : c037a400 r1 : e3843090 r0 : c0378680 Flags: NzCv IRQs off FIQs off Mode SVC_32 Segment kernel Control: 0005317f Table: 20004000 DAC: 00000017 Process swapper (pid: 0, stack limit = 0xc0296260) Stack: (0xc0297f08 to 0xc0298000) 7f00: c0378680 c0378680 c02bbec4 00040000 00000010 00000028 7f20: c0297f44 c0297f30 c007527c c0074e5c c0378680 c0378680 c0297f64 c0297f48 7f40: c0212a08 c0075234 c0378680 c0378680 00000008 00000190 c0297fb4 c0297f68 7f60: c00759f8 c02129f0 c0297f80 c0297f84 00000003 c0260038 fffffff8 00000001 7f80: 00000010 0000005c c0297fb4 c02bbe98 c02b31ec c0299d54 c02d04a4 2001eee4 7fa0: 41069265 2001eeb0 c0297fcc c0297fb8 c0012824 c0075640 00000000 00000000 7fc0: c0297ff4 c0297fd0 c0008d08 c00127b4 c0008554 00000000 00000000 c0020f2c 7fe0: 00053175 c02b3700 00000000 c0297ff8 20008030 c0008aec 00000000 00000000 Backtrace: [<c0074e4c>] (do_tune_cpucache+0x0/0x264) from [<c007527c>] (enable_cpucache+0x58/0x7c) [<c0075224>] (enable_cpucache+0x0/0x7c) from [<c0212a08>] (setup_cpu_cache+0x28/0x130) r5:c0378680 r4:c0378680 [<c02129e0>] (setup_cpu_cache+0x0/0x130) from [<c00759f8>] (kmem_cache_create+0x3c8/0x46c) r6:00000190 r5:00000008 r4:c0378680 [<c0075630>] (kmem_cache_create+0x0/0x46c) from [<c0012824>] (pidmap_init+0x80/0xa0) [<c00127a4>] (pidmap_init+0x0/0xa0) from [<c0008d08>] (start_kernel+0x22c/0x2c4) [<c0008adc>] (start_kernel+0x0/0x2c4) from [<20008030>] (0x20008030) r5:c02b3700 r4:00053175 Code: e121f003 e3a03000 e1a00006 e2841010 (e5942000) Kernel panic - not syncing: Attempted to kill the idle task!
  2. Собрали плату с архитектурой похожей на AT91SAM9260EK. На плате имеется: - NAND Flash, - SDRAM 64M, - SD/MMC-card, - Ethernet на KS8721BL, - SPI, - TDM, - USB device, - Com порт debug, - Собственное адресное пространство на NCS4 Проблем с о сборкой Bootstrup(LinuxLink by TimeSys) и uBoot 1.3.0 (LinuxLink by TimeSys) не было. Все грузится. Проблемы начались, когда стал ставить ядро Linux. Использую Linux 2.6.22 (linux-2.6.22.tar.bz2 + 2.6.22-at91.patch.gz + 2.6.22-at91-exp.patch.gz) взял на www.linux4sam.org. Кросскомпилятор arm-2007q1-10-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 взял тоже на www.linux4sam.org. Пробовал Bootstrup и uBoot брать на www.linux4sam.org, но результат практически тот-же. Также уменьшил частоту SDRAM до 50 МГц предположив звоны на плате (хотя плата 6-ти слойка и гонял я ее в HyperLinx), не помогло. При сборке в menuconfig отключал модули и тоже безрезультатно. Получаю с некоторыми вариациями такие результаты: ************************************************************ NAND read: device 0 offset 0x100000, size 0x300000 3145728 bytes read: OK U-Boot> bootm 0x21500000 ## Booting image at 21500000 ... Image Name: linux-2.6 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2501012 Bytes = 2.4 MB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK OK Starting kernel ... Linux version 2.6.22 (user@debianBox) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #14 Mon Feb 11 16:31:56 MSK 2008 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 Machine: Atmel AT91SAM9260-EK (CP.11 BSS) Memory policy: ECC disabled, Data cache writeback Clocks: CPU 198 MHz, master 66 MHz, main 18.432 MHz CPU0: D VIVT write-back cache CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets Built 1 zonelists. Total pages: 16256 Kernel command line: mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw AT91: 96 gpio irqs in 3 banks PID hash table entries: 256 (order: 8, 1024 bytes) Console: colour dummy device 80x30 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: 59184KB available (2240K code, 260K data, 104K init) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 Init Hard CP.11 End Init CP.11 Unhandled fault: alignment exception (0x001) at 0x739d53c6 Internal error: : 1 [#1] Modules linked in: CPU: 0 Not tainted (2.6.22 #14) PC is at kfree+0x7c/0xc4 LR is at kobject_set_name+0xac/0xbc pc : [<c0071d7c>] lr : [<c01040b0>] psr: 00000093 sp : c03d7ec0 ip : c03d7ee0 fp : c03d7edc r10: c02515cc r9 : c03d7f4b r8 : c0221ff4 r7 : c03d7f10 r6 : 6e72656b r5 : 20000013 r4 : c03e81a0 r3 : 33cc33c0 r2 : 019ce4c0 r1 : bfe95000 r0 : 739d53c6 Flags: nzcv IRQs off FIQs on Mode SVC_32 Segment kernel Control: 0005317f Table: 20004000 DAC: 00000017 Process swapper (pid: 1, stack limit = 0xc03d6260) Stack: (0xc03d7ec0 to 0xc03d8000) 7ec0: c03d7f10 c03e81a0 c0221ff8 c0221ff8 c03d7f08 c03d7ee0 c01040b0 c0071d10 7ee0: c001da10 c03d7f10 c03e81a0 c03d7f4b 00000001 00000007 c02515cc c03d7f3c 7f00: c03d7f18 c0012604 c0104018 c03d7f4b 00000000 c025810c c03d7f3c 00000006 7f20: c02580c8 00000008 00000001 c02515e0 c03d7f8c c03d7f40 c0012750 c00125bc 7f40: 00000002 0000002d 70000000 746e6972 0000006b 00000000 00000000 00000000 7f60: c012e558 00000000 00000000 00000000 c03d6000 c001da10 00000000 c001e000 7f80: c03d7ff4 c03d7f90 c0008920 c001266c 33cc318c 334433cc 00000000 00000000 7fa0: 00000000 c03d7fb0 c0022e64 c0034c40 00000000 00000000 c0008870 c003a820 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 7fe0: 00000000 00000000 00000000 c03d7ff8 c003a820 c0008880 3308134c 43cc33c8 Backtrace: [<c0071d00>] (kfree+0x0/0xc4) from [<c01040b0>] (kobject_set_name+0xac/0xbc) r6:c0221ff8 r5:c0221ff8 r4:c03e81a0 [<c0104004>] (kobject_set_name+0x0/0xbc) from [<c0012604>] (kernel_param_sysfs_setup+0x58/0xb0) r3:c025810c r2:00000000 r1:c03d7f4b r8:c02515cc r7:00000007 r6:00000001 r5:c03d7f4b r4:c03e81a0 [<c00125ac>] (kernel_param_sysfs_setup+0x0/0xb0) from [<c0012750>] (param_sysfs_init+0xf4/0x1a4) r8:c02515e0 r7:00000001 r6:00000008 r5:c02580c8 r4:00000006 [<c001265c>] (param_sysfs_init+0x0/0x1a4) from [<c0008920>] (kernel_init+0xb0/0x26c) [<c0008870>] (kernel_init+0x0/0x26c) from [<c003a820>] (do_exit+0x0/0x7c4) Code: e59f004c e3a01e25 ebfed488 e5900018 (e5904000) Kernel panic - not syncing: Attempted to kill init! ***************************************************************** NAND read: device 0 offset 0x100000, size 0x300000 3145728 bytes read: OK ## Booting image at 21500000 ... Image Name: linux-2.6 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2501012 Bytes = 2.4 MB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK OK Starting kernel ... Linux version 2.6.22 (user@debianBox) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #14 Mon Feb 11 16:31:56 MSK 2008 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 Machine: Atmel AT91SAM9260-EK (CP.11 BSS) Memory policy: ECC disabled, Data cache writeback Clocks: CPU 198 MHz, master 66 MHz, main 18.432 MHz CPU0: D VIVT write-back cache CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets Built 1 zonelists. Total pages: 16256 Kernel command line: mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw AT91: 96 gpio irqs in 3 banks PID hash table entries: 256 (order: 8, 1024 bytes) Console: colour dummy device 80x30 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: 59184KB available (2240K code, 260K data, 104K init) kernel BUG at mm/slab.c:1372! Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 [00000000] *pgd=00000000 Internal error: Oops: 805 [#1] Modules linked in: CPU: 0 Not tainted (2.6.22 #14) PC is at __bug+0x20/0x2c LR is at release_console_sem+0x1cc/0x1e4 pc : [<c0026fbc>] lr : [<c0037ec8>] psr: 60000053 sp : c0253f68 ip : 00000000 fp : c0253f74 r10: 2001d630 r9 : 41069265 r8 : 00000000 r7 : c02940c0 r6 : 00000000 r5 : c001f6f4 r4 : c033eae0 r3 : 00000000 r2 : c025721c r1 : 000004e8 r0 : 00000021 Flags: nZCv IRQs on FIQs off Mode SVC_32 Segment kernel Control: 0005317f Table: 20004000 DAC: 00000017 Process swapper (pid: 0, stack limit = 0xc0252260) Stack: (0xc0253f68 to 0xc0254000) 3f60: c0253f94 c0253f78 c0072d30 c0026fac c033f6e0 c025b330 3f80: c025b48c c025b330 c0253fcc c0253f98 c0014c50 c0072d04 00000000 00000000 3fa0: 000008c0 00000040 00000068 00000000 c026ae0c c0255cd4 c029338c 2001d664 3fc0: c0253ff4 c0253fd0 c0008ce8 c0014994 c0008554 00000000 00000000 c001ef2c 3fe0: 00053175 c026b320 00000000 c0253ff8 20008030 c0008aec 00000000 00000000 Backtrace: [<c0026f9c>] (__bug+0x0/0x2c) from [<c0072d30>] (init_list+0x3c/0x11c) [<c0072cf4>] (init_list+0x0/0x11c) from [<c0014c50>] (kmem_cache_init+0x2cc/0x380) r7:c025b330 r6:c025b48c r5:c025b330 r4:c033f6e0 [<c0014984>] (kmem_cache_init+0x0/0x380) from [<c0008ce8>] (start_kernel+0x20c/0x2c4) r8:2001d664 r7:c029338c r6:c0255cd4 r5:c026ae0c r4:00000000 [<c0008adc>] (start_kernel+0x0/0x2c4) from [<20008030>] (0x20008030) r5:c026b320 r4:00053175 Code: e1a01000 e59f000c eb004513 e3a03000 (e5833000) Kernel panic - not syncing: Attempted to kill the idle task! Может кто сталкивался с такой ситуацией? linux.txt
  3. Грузить AT91SAM9260 можно несколькими способами. Я пробовал - через Debug порт (RS-232), - через USB Device Грузил прогой SAM-BA v2.6 На AT91SAM9260 следует вывод BMS установить в лог '1'. Если на плате стоит Atmel Data Flash или NAND Flash, то первоначально они должны быть чистыми, или нужно оторвать CS , иниаче может грузонуться с них. С помощью проги SAM-BA можно загрузить софт в Data Flash, NAND Flash, SRAM, SDRAM. Исполззовать COM-порт просто. Но гораздо интереснее использовать USB Device. После сброса AT91SAM9260 втыкаем USB в комп и он находит наш проц и ставит из него драйвер. Ну а далее в SAM-BA выбираем \usb\ARM0 в качество подключения к плате.
  4. При работе с Atmega128L cтолкнулся с такой проблемой: 1. При BOOTRST=0 Atmega128L стартует с адреса 0000, а не с 0f000 - как хотелось бы. Если делаю JMP 0f000 (команда находится по адресу 0000) на код размещенный с адреса 0f000 , то программа стартует и выполняется (если прерывания запрещены) 2. Если вектра прерывания и код размещаю с адреса 0f000 (в BootLoader-е), то при первом же прерывании Atmega128L уходит на Reset и начинает выволняться с адреса 0000, (IVSEL=1). 3. Если вектра прерывания размещаю с адреса 0000, а код размещаю с адреса 0f000 (в BootLoader-е) то прерывания обрабатываются нормально (IVSEL=0). Использую компилятор IAR C/C++ Compiler for AVR 4.10B/W32 [Evaluation] (4.10.2.3) Программирую Atmega128 программой AvReal ver1.25rev3 (через Xilinx-Parallel Cable III). Fuse биты следующие: CKOPT=0,CKSEL=F,SUT=3,BOOTRST=0,BOOTSZ=0,WDTON=0,M103C=1,BODEN=0,BODLEVEL=1, BLB0=3, BLB1=3,OCDEN=1,JTAGEN=0,EESAVE=1.
×
×
  • Создать...