안녕하세요..

문서에서 약간 수정할 부분이 있네요..초기 문구에 "타겟보드의 디버깅용으로 달려있는 2개의 LED를 가지고 GPIO 입출력을 TEST 한다." [14장. 1.4.절 ]

문서작성시 이 디버깅용으로 할려고 하다가 2개의 LED는 입력으로만 가능하기 때문에 따로 회로도를 꾸며서 사용하는것으로 변경하였습니다.. 이 문구를 바꾸지 못했네요...죄송합니다.

일단 소스를 두 종류로 다시 올려 드리겠습니다.

1. GPIO 디렉토에 있는것은 문서의 회로도대로 작성한 소스입니다.
    GPIO-A Port [0..3]

2. GPIO-DEBUG 디렉토리는 디버깅 LED로 사용된 GPIO-E Port [0..1]를 ON/OFF 하는 소스입니다.

두개의 사용방법은 다음과 같습니다.

1. 보드 부팅 후 nfs로 접속한다.

2. 해당 모듈과 어플리케이션 실행 파일을 nfs로 복사한다.
    - dev_gpio.ko
    - app_gpio

3. 모듈을 적재한다.

    $ ismod dev_gpio.ko

4. 디바이스 장치 파일을 만든다.

    $ mknod /dev/gpio c 240 0

5. 어플리케이션을 실행시킨다.

    $ ./app_gpio    
    

이렇게 하시면 됩니다...


그런데.. 커널 패닉이 나타난다는 문제는 이상하네요...
아래 메세지를 보면 커널부팅시 중간 중간에 어플리케이션이 실행하는 코드가 보이는데...
LED 깜빡이는 예제를 어떻게 타겟보드에 실행 하셨는지 적어 주시면 감사하겠습니다.
GPIO와 이더넷은 전혀 관계가 없습니다....

일단 위와 같이 해 보시고 안되시면 다시 리플달아 주세요..


그럼 수고하세요..



>카테고리에 EZ-EP9312 가 없네요.
>
>led 깜빡이는 예제를 돌리다 보면 이더넷이 연결됐다 끊어졌다를 반복합니다.(led 는 안깜박입니다 -.-;)
>그러다가 D3, D4, D5 led 가 일제히 점등을 하면서 nfs 연결이 끊어집니다.
>그러고 타겟보드를 리셋하거나 껐다켜면 부팅 도중 커널 패닉에 빠집니다.
>2대를 사갔는데 2대 모두 그러네요.
>
>왜 그런가요?
>
>아래는 커널 패닉 상태에 이른 후 복사한 로그입니다.
>
>
>usbcore: registered new driver hiddev07000
>3 app_gpio ... "EZ-EP9312 Da
>3
>usbcore: registered new driver usbhid...              
>3 app_gpio ...EP93x
>drivers/usb/input/hid-core.c: v2.0:USB HID core driver      
>driv
>3 app_gpio ...ci-ep93xx.c: o
>3 app_gpio .
>drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic3 app_gpio ...58000  
>
>ohci-
>3 app_gpio ...new USB bus re
>3 app_gpio ...ne
>usbcore: registered new driver usbserial_genericpio ...              
>3 app_gpio ...-0:1.0: USB
>usbcore: registered new driver usbserialo ...0: 3 ports det
>3 app_gpio ...59fd8
>drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0    
>3 app_gpio ...          
>us
>3 app_gpio ...ed new driv
>drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303.pport register
>3 app_gpio ...              
>3 app_gpio ...ore: registere
>
>usbcore: registered new driver pl2303o ...            
>u
>3 app_gpio ...red
>Starting INET services:  inetd0000056
>2 app_gpio ...59 0000
>
>
>Welcome to FALinux EZ-EP931x ( www.falinux.com ) (order: 2, 16
>2 app_gpio ...              
>2 ap
>ARM920T(EP931x) Linux Kernel 2.6.11.7-ez-ep931xes co
>2 app_gpio ...lished 4096 bi
>2 app_gpio .
>falinux login: rootpp_gpio ...m [<c002
>[root@falinux ~]$ lsistered protoc
>2 app
>mkflashroot  nfsmnt000
>2 app_gpio ...
>
>[root@falinux ~]$p_gpio ...ily 17
>
>WELCOME EZBOOT.EP931x V1.0 ..................for EZ-EP9312found
>2 app_gpio ...              
>2 app_gpio ...        
>Program by You Young-chang, fooji, Jang Hyung-Gi (FALinux Co.,Ltd)pp_gpio ...            
>
>2 app_gpio ...mory: 104K    
>2 app_gpio
>Last Modify J  
>        
>2 app_gpio ...
>............................. done, booting the kernel..              
>2 app_gpio ...      
>app_gpi
>2 app_gpio
>Linux version 2.6.11.7-ez-ep931x (root@arm26) (gcc version 3.4.3) #52 Wed Jan 4oot@falinux nfs]$x nfs]$ cd tmp/c400
>[root@falinux nfs]$ ./testot@falinux tmp]$
>22:11:15 KST 2006rver 192.168.10.1
>CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)                                
>
>
>WELCOME EZBOOT
>CPU0: D VIVT write-back cache.for EZ-EP9312      
>hello  
>CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 setsng, fooji, Jang Hyung-Gi (FALinux Co.,Ltd)0003e 0000003f 00000046 0
>CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets            
>hello
>
>Boot Flash Check ..........................
>[
>Machine: FALINUX Co.,Ltd <www.falinux.com> ez-ep9312 for EP9312 BOM)Flash : 22BA     dev_gpi                          
>        
>CPU0: D V
>Security Framework v1.0.0 initialized-----------
>CPU0: I cache: 16384 byte
>SELinux:  Initializing.byte lines, 8 sets?nter
>SELinux:  Starting in permissive mode                  
>"app
>CPU0: D cach
>selinux_register_security:  Registering secondary module capability_gpio.c^Ma 00000000 c0367940 000
>// 설 명 :^M        
>Machine: FAL
>Capability LSM initialized as secondary for EP9312 Boardc0037d8c>]    Not tain
>Mount-cache hash table entries: 512 (order: 0, 4096 bytes)d configuration page, trying to continue------------------
>CPU: Testing write buffer coherency: okezboot Magic Value  [20050511]038  fp :
>checking if image is initramfs...it isn't (no cpio magic)ata cache writ^M                    
>                  
>usbcore: registered new driver hubde <sys/poll.h>^M
>PID hash table
>NetWinder Floating Point Emulator V0.97 (double precision)n:10
>[root@falinux nfs]$ l
>Console: colour dummy device 80
>audit: initializing netlink socket (disabled)ache hash table entries: 16384 (order: 4, 655
>audit(3.230:0): initializedio.h      dev_gpio.mod.o  t
>Initializing Cryptographic APIsh table entries: 8192 (order:
>ep93xxfb_init: ep93xxfb_initgpio.o      ttt            
>ep93xxfb_setup: ep93xxfb_setup(char *options="<NULL>")s]$ ./test          
>Cont
>Memory: 56784KB available (2
>ep93xxfb_init_fbinfo: Default framebuffer is 16bpp 565.Config_gpio ...
>9ac0: 0000000
>4 app_
>                            
>4 app_gpio ...          
>loop: loaded (max 8 devices)ulator V0.97 (double precisi
>nbd: registered device at major 434 app_gpio ...on 2.6.11.7-
>audit:
>ep93xx_eth() version: ep93xx_eth.c: V1.0 09/04/2003 Cirrus Logic..    
>9220: c0
>4
>audit(3.230:0): initialized4 app_gpio ...0037
>EP9312_Eth #0 at 0xe0010000 IRQ:39 MAC:78:56:34:12:1c:32          
>4
>ep93xxfb_init: ep93xxfb_init app_gpio ...0
>EP9312_Eth initDriver(): unable to get region 0xe0010000-0xe001ffff) 2
>4 app_gpio ...              
>4 app_gpio ...        
>ep93xxfb_in
>NAND device: Manufacturer ID:0xec, Chip ID:0x76 (Samsung NAND 64MiB 3,3V 8-bit)r
>4 app_gpio ...es, LIFO batch
>4 app_gpio ...e-back cachens
>4 app
>Console: swit
>Scanning device for bad blocksvice 128x48pp_gpio ...        
>Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":x frame buffer device ...igh      
>    
>4 app_gpio ..
>0x00000000-0x00200000 : "EZ                        
>EP9312_Eth #0 at 0xe0010000 IRQ:39 MAC:78:56:34:12:1c:32  
>usbcore: registered new driver usbserial_generic3597
>EP9312_Eth initDriver(): unable to get regi
>usbcore: registered new driver usbserial03K data,
>4 app_gpio ...              
>
>drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0amsung NAND 64MiB 3,3V 8-bit)pp_gpio ...      
>[<c0039
>4 app
>drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303ocks03
>4 app_gpio ...00000002 0000
>Creating 3 MTD partitions on "NAND 64Mi
>usbcore: registered new driver pl2303          
>4 app_gpio ...    
>0x00000
>drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.1212, silic
>4 app_g
>0x00200000-0x00700000 : "EZ-EP9312 Ramdisk partition"pp_gpio
>mice: PS/2 mouse device common for all mic  
>                                      
>4 app_gpio ...  
>96e0: 0000
>4 app_g
>driver
>CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets    
>4 app_gpio ...              
>4 app_gpio .
>drivers/usb/serial/u
>Machine: FALINUX Co.,Ltd <www.falinux.com> ez-ep9312 for EP9312 Board6c/0x7c    
>4 app_gpio ...              
>4 app_gpio ...  
>usbcore: r
>Warning: bad configuration page, trying to continue0 pa  
>4 ap
>drivers/usb/serial/pl2303.c: Prolific
>Check ezboot Magic Value  [20050511]0.12  
>4 app_gpio ...............  
>
>Memory policy: ECC disabled, Data cache writebackce: PS/2 mouse device common for all micep_gpio .
>Built 2 zonelists app_gpio ...hang
>Kernel command line:   initrd=0xC0800000,5M root=/dev              
>4 app_gpio ...              
>        
>2 app_g
>pc : [<c0009e20>]    lr : [<c000
>CPU: Testing write buffer coherency: ok000000
>3 app_gpio ...a4890 0000000
>sp :
>checking if image is initramfs...it isn't (no cpio magic); looks like an initrd  
>r10: fd9274bb  r9 : 00000006  r8 : 00000392.7410  fp : c03
>3 app_gpio ...  
>Freeing initrd memory: 5120K: 00000008  r5 : 0000037b  r
>NET: Registered protocol family 16000006
>3 app_gpio ...007 00000007
>CPU model: Cirrus Logic EP9312, silicon rev E r0 : c1d900002 app_gpio ...              
>3
>SCSI subsystem initialized
>Flags: nzCv  IRQs on  FIQ
>usbcore: registered new driver usbfs_gpio ...r5 : 00000177
>3 app_gpio .
>usbcore: registered new driver hubF  Table: C0004000  DAC: 000000  
>2 app_gpio ...      
>ttyAM0 at MMIO 0x808c0000 (irq = 52) is a uart-ep93xx00008 00000008 00000008 00000008 000000082 app_gpio .
>ttyAM1 at MMIO 0x808d0000 (irq = 54) is a uart-ep93xxio ...  
>9
>9aa0: 00000008 00000008 00000008 00000008
>ttyAM2 at MMIO 0x808e0000 (irq = 55) is a uart-ep93xx
>2 app_gpio ...              
>3 app_gpio ...        
>io scheduler noop registered8 00000008 00000008 00000008
>io scheduler cfq registered      
>3 app_gpio ...    
>RAMDISK driver initialized: 16 RAM disks of 12288K size 1024 blocksize08 00000008 00000008 00000008 00000008 00000008 00000008 app_gpio ...
>loop: loaded (max 8 devices)            
>2 app_gpio ...
>nbd: registered device at major 430008 00000007 00000007 00000006 00
>ep93xx_eth() version: ep93xx_eth.c: V1.0 09/04/2003 Cirrus Logicpp_gpio ...    
>9c40: 00
>2
>9b20: 00000007 00000008 00000008 000
>EP9312_Eth #0 at 0xe0010000 I ...              
>        
>3 app_gpio ...              
>2 app_gpio ...
>hub 1-0:1.0: USB hub found40: 00000008 00000008 0000
>hub 1-0:1.0: 3 ports detected9 00000009 000000082 app_gpio
>Initializing USB Mass Storage driver...0000000
>2 app_gpio ...d655
>9c60: 00000
>usbcore: registered new driver usb-storage00009 00000009 00000009 ... 8192 bytes)b/
>
>USB Mass Storage support registered.io ...              
>
>9c80: 00000009
>usbcore: registered new driver hiddev0000009 00000008 00000009        
>3 a
>usbcore: registered new driver usbhid..618 00000000 c
>3 app_gpio
>9ca0: 000
>drivers/usb/input/hid-core.c: v2.0:USB HID core driver0008 00000009 app_gpio ...              
>3 app_gpio ..
>drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic009 00000009 00000009 00000009 00000009...              
>2 app_gpio ... c0
>usbcore: registered new driver usbserial_generic00000009 00000009 00000008 00000009 00000      
>3 app_gpio ...r7 = 00000046
>TCP: Hash tables configured (established 4096 bind 4096)0000009 00000009 00000008 00000008 00000008 00000008 000
>NET: Registered protocol family 13 app_gpio ...          
>Sta
>2 ap
>NET: Registered protocol family 170006 00000006 00000006 00000008 00
>RAMDISK: Comprinvelidmcoeprosn  at block 02 app_gpio ...[<c0038910>] (
>3 app_gpio ..
>a mesedformat (err=1) 0000000e 0000000f 00
>VFS: Mounted root (ext2 filesystem) readonly.00000        
>3 app_gpio ...              
>2
>Freeing init memory: 104K
>3 app_gpio
>9e60: 0000000
>EXT2-fs error (device ram0): ext2_check_page: bad entry in directory #87: rec_le  r6 = C02
>3 app_gpio ...0001392fc c020
>2 app_gpio ...0359a1
>9e80: 00000004 0000
>n is smaller than minimal - offset=2048, inode=0, rec_len=0, name_len=0  
>2 app_gpio ...              
>3 app_gpio ...        
> r4 =
>2
>9ea0: 0
>Kernel panic - not syncing: No init found.    
>2 app_gpio ...              
>        
>Stack: (0xc0359e78 to 0xc035a000) app_gpio ...              
>3 app
>9e60:                                                       ffffffff c0359ed00359ff8 c0039ee4 c0022064 ebfcec53 e1a00004 ...000a 0000000b
>2 app_gpio ...o
>9e80: 00000000 00000000 00000000 c0359ef0 c0359e9c c002249c c002914c c02392a0(inflate_codes+0x0/0x468) from [<c000a660>] (inflate_dynamic+0x624/          
>9ea0: c0239298 40000100 80000200 6032b2f8 c0359f70 00000000 00000000 00000000 0000
>[<c000a03c>] (inflate_dynamic+0x0/0x694) from [<c000aed0>] (rd_load_ima
>9ec0: c0359f70 00000000 c0359ef0 c0239018 c0359ee4 6032b2f8 c0125c9c 800000130x
>2 app_gp
>0xfb0)      
>[<c000a6e0>] (rd_load_image+0x0/0xfb0) from [<c000b8
>9ee0: ffffffff c0359f04 c0359ef4 c00490b4 c0125c7c c0359f70 c0359f18
>3 app_gpio ...              
>2 app_gp
>)
>                        
>2
>[<c002913c>] (do_DataAbort+0x0/0x9c) from [<c002249c>] (__dabt_svc+0x3c/0x60))      
>3 app_
>  Detect ES29LV400 (BOTTOM)Flash : 22BA          
>3 app_gpio
> r8 = 00000000  r7 = 00000000  r6 = 00000000  r5 = C0359ED0.
>[<
>
>NAND Chip Check ....................... app_gpio ...
> r4 = FFFFFFFF2 app_gpio
>  
>[<c0125c6c>] (search_extable+0x0/0x5c) from [<c00490b4>] (search_exception_table>  Kernel, Ramdisk Bad Block [0]...              
>3 app_gpio ...              
>2
>s+0x20/0x44)C, PHY Init.
>[<c0049094>] (search_exception_tables+0x0/0x44) from [<c0028950>] (fixup_excepti 34 34]
>2 app_gpio ...              
>3 app_g
>  MAC, PHY INIT OK!!!2 app_gpio ..
>on+0x18/0x30)            
> r4 = C0359F70              
>[<c0028938>] (fixup_exception+0x0/0x30) from [<c0028d4c>] (__do_kernel_ Ja
>3 app_gpi
>Copy Kernel Image .....p_gpio ...            
>        
>pgd = c0004000cy: ECC disabl
>[00000000] *pgd=00000000          
>3 app_gpio .
>Internal error: Oops: 5 [#2]t 2 zonelists22:
>3 app_gpio
>Modules linked in:ine:   initrd=0xC0
>CPU: 05M roo
>PC is at .src2_aligned+0x10/0xd8pio ...              
>3 app_gpio
>LR is at __do_div64+0x0/0x130...              
>
>ttyAM1,115
>pc : [<c012b120>]    lr : [<c012b2f8>]    Not tainted164 nandparts=2,s    
>2 app_gpio ...              
>3
>sp : c0359d88  ip : 001ffff0  fp : c0359d945,57 arch=EZ-EP931xpio ...ity 64, 32 b
>PID
>r10: c0359e30  r9 : c0358000  r8 : 7f000000s)        
>2 app_gpio ...        
>Mach
>3
>r7 : 0000000b  r6 : c02c3410  r5 : c02c3414  r4 : 00007f00pp_gpio ...        
>                                      
>3 app_gpio ...model: Cirrus
>2 app_gpi
>9ee0: ffffffff c0359f04 c0359ef4 c00490b4 c0125c7c c0359f70 c0359f18 c0359f083 app_gpio ...              
>2 app_
>fb0: Cirrus EP93xx frame buffer device  
>9f00: c0028950 c00490a4 6032b2f8 c0359f38 c0359f1c c0028d4c c0028948 c0352d60d to 0xffc00000, size 1540kio ...r Floating Poi
>2 app_gpio ...97 (double pre
>
>9f20: c0359fa4 6032b2f8 c001d0ec c0359f6c c0359f3c c0029024 c0028d38 c003ca04lizi
>iiijjjj_gpio start ...bled)        
>EP93xx Watchdog: Version 0.01      
>9f40: c0359f74 ffffffff c0359fa4 c02c3410 c001d0ec 00000000 20000013 00000000phic API  
>3 app_gpio .
>ttyAM0 at MMIO 0x808c0000 (irq = 52) is a uart-ep93xx
>9f60: c0359fc4 c0359f70 c00225fc c0028e70 0000bde9 00000000 000000f3 c02c34100 (
> r7 = 00239118  r6 = 00000004  r5 = C0359E64  r4 = C0352D60
>[<c0028e60>] (do_page_fault+0x0/0x1dc) from [<c00225fc>] (__pabt_svc+0x3c/0x80)
>[<c002913c>] (do_DataAbort+0x0/0x9c) from [<c002249c>] (__dabt_svc+0x3c/0x60)
> r8 = 00000000  r7 = 00000000  r6 = 00000000  r5 = C0359ED0
> r4 = FFFFFFFF
>[<c0125c6c>] (search_extable+0x0/0x5c) from [<c00490b4>] (search_exception_table
>s+0x20/0x44)
>[<c0049094>] (search_exception_tables+0x0/0x44) from [<c0028950>] (fixup_excepti
>on+0x18/0x30)
> r4 = C0359F70
>[<c0028938>] (fixup_exception+0x0/0x30) from [<c0028d4c>] (__do_kernel_fault+0x2
>4/0x7c)
> r4 = 6032B2F8
>[<c0028d28>] (__do_kernel_fault+0x0/0x7c) from [<c0029024>] (do_page_fault+0x1c4
>/0x1dc)
> r7 = C001D0EC  r6 = 6032B2F8  r5 = C0359FA4  r4 = C0352D60
>[<c0028e60>] (do_page_fault+0x0/0x1dc) from [<c00225fc>] (__pabt_svc+0x3c/0x80)
>[<c0037ca0>] (panic+0x0/0x114) from [<c00221cc>] (init+0x178/0x1c8)
> r3 = 00000036  r2 = 00000006  r1 = C0340360  r0 = C02137A8
>[<c0022054>] (init+0x0/0x1c8) from [<c0039ee4>] (do_exit+0x0/0xab8)
> r7 = 00000000  r6 = 00000000  r5 = 00000000  r4 = 00000000
>Code: e1a04825 e2933000 e3d2c00f 0a000010 (e8b001e0)
> <0>Kernel panic - not syncing: Attempted to kill init!