平台:ITOP-4412开发板
转自迅为论坛:http://www.topeetboard.com
利用最小linux系统来学习Linux驱动,用迅为提供的zImage和system在烧写后开发板均可正常工作,但加装自己编写的驱动后,如LEDS驱动,利用迅为提供的Ubuntu镜像编译生成的zImage烧入迅为开发板,即不断重启,超级终端一个周期显示如下:
U-Boot 2010.03 (Dec 23 2014 - 19:04:17) for iTOP-4412 Android
APLL = 1000MHz, MPLL = 800MHz
ARM_CLOCK = 1000MHz
PMIC: S5M8767(VER5.0)
Board: iTOP-4412
DRAM: 2 GB
MMC: max_emmc_clock:40 MHZ
Set CLK to 400 KHz
EMMC CLOCK OUTPUT:: 400KHz -[div:50]
response timeout error : 00000104 cmd 8
response timeout error : 00000104 cmd 55
max_emmc_clock:40 MHZ
Input CLK [ 50 MHz] is higher than limit [40 MHZ]
Set CLK to 40000 KHz
EMMC clock output: 40000 KHz
max_emmc_clock:40 MHZ
Input CLK [ 50 MHz] is higher than limit [40 MHZ]
Set CLK to 40000 KHz
EMMC clock output: 40000 KHz
MMC0: 14910 MB
SD sclk_mmc is 400K HZ
raise: Signal # 8 caught
raise: Signal # 8 caught
MMC1: 0 MB
0 MB
*** Warning - using default environment
In: serial
Out: serial
Err: serial
eMMC OPEN Success.!!
!!!Notice!!!
!You must close eMMC boot Partition after all image writing!
!eMMC boot partition has continuity at image writing time.!
!So, Do not close boot partition, Before, all images is written.!
MMC read: dev # 0, block # 48, count 16 ...16 blocks read: OK
eMMC CLOSE Success.!!
Checking Boot Mode ... EMMC4.41
SYSTEM ENTER NORMAL BOOT MODE
Hit any key to stop autoboot: 0
reading kernel.. 1120, 12288
MMC read: dev # 0, block # 1120, count 12288 ...12288 blocks read: OK
completed
reading RFS.. 13408, 2048
MMC read: dev # 0, block # 13408, count 2048 ...2048 blocks read: OK
completed
Boot with zImage
Wrong Ramdisk Image Format
[err] boot_get_ramdisk
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
.....(长度限制中间部分省略)
[ 4.454085] [<c058ebf0>] (secondary_start_kernel+0x0/0x180) from [<4058e8b4>] (0x4058e8b4)
[ 4.454090] r6:10c0387d r5:00000015 r4:5607006a r3:c058e89c
[ 4.716806] CPU1: stopping
[ 4.719496] Backtrace:
[ 4.721936] [<c004ae70>] (dump_backtrace+0x0/0x11c) from [<c0591b44>] (dump_stack+0x18/0x1c)
[ 4.730347] r6:d6260000 r5:c08d28f0 r4:c08d2620 r3:d6260000
[ 4.735995] [<c0591b2c>] (dump_stack+0x0/0x1c) from [<c003f3e4>] (do_IPI+0x17c/0x190)
[ 4.743805] [<c003f268>] (do_IPI+0x0/0x190) from [<c0046380>] (__irq_svc+0x80/0x14c)
[ 4.751526] Exception stack(0xd6261c40 to 0xd6261c88)
[ 4.756564] 1c40: c08f1380 60000053 c08f13dc c08f13dc c096a9b8 00000003 c08f1380 c096aa21
[ 4.764723] 1c60: 0000007b 0000007b 00000000 d6261d3c d6261c50 d6261c88 c008227c c0082a58
[ 4.772879] 1c80: 60000053 ffffffff
[ 4.776355] [<c00825f8>] (vprintk+0x0/0x5c4) from [<c0591cb4>] (printk+0x28/0x30)
[ 4.783822] [<c0591c8c>] (printk+0x0/0x30) from [<c0262928>] (__dev_printk+0x4c/0x94)
[ 4.791627] r3:d6238e00 r2:c0889330 r1:c08488fc r0:c0859a68
[ 4.797273] [<c02628dc>] (__dev_printk+0x0/0x94) from [<c0262a40>] (dev_warn+0x40/0x48)
[ 4.805262] [<c0262a00>] (dev_warn+0x0/0x48) from [<c02c53e0>] (usb_get_configuration+0xf58/0x16ec)
[ 4.814282] r3:00000000 r2:00000001 r1:c0862c6c
[ 4.818888] [<c02c4488>] (usb_get_configuration+0x0/0x16ec) from [<c02b562c>] (usb_enumerate_device+0xb4/0xd4)
[ 4.828868] [<c02b5578>] (usb_enumerate_device+0x0/0xd4) from [<c02b7f14>] (usb_new_device+0x78/0x278)
[ 4.838152] r5:d61f2068 r4:d61f2000
[ 4.841715] [<c02b7e9c>] (usb_new_device+0x0/0x278) from [<c02b9c44>] (hub_thread+0xa64/0x1548)
[ 4.850391] r6:d61f1c00 r5:d6099180 r4:d61f2000
[ 4.854997] [<c02b91e0>] (hub_thread+0x0/0x1548) from [<c00a0d54>] (kthread+0x94/0x98)
[ 4.862894] [<c00a0cc0>] (kthread+0x0/0x98) from [<c00860d8>] (do_exit+0x0/0x754)
[ 4.870355] r7:00000013 r6:c00860d8 r5:c00a0cc0 r4:d6041ef8
[ 4.875998] Rebootin
无法进行后续实验。求各位大神指导
我能想到的原因是:
1、 EMMC未格式化?
2、 我的核心板是SCP还是POP的?(光盘里给的是SCP,但网站写的是全能版是POP的),会不会是因为Ubuntu编译的zImage不兼容,如何选择POP还是SCP
3、初始化配置文件(参见linu系统编程v.2.1 Section 2.7),已用网盘原始文件替换,make后故障依旧。
解决方法:
调试出来了,原因是.config文件用错了,想当然的以为make menuconfig文件就可以用,其实必须用对应SCP或POP核心板的开发板才能生成正确的zImage.
手册太老,看来还是得用新版手册。