Embedded 版 (精华区)

发信人: he (无情的雨), 信区: Embedded_system
标  题: linux for ppc chapter 20 
发信站: 哈工大紫丁香 (2001年06月04日11:11:14 星期一), 站内信件

----------------------------------------------------------------------------
----
20. Common Mistakes and Problems
Many new developers are likely to encounter at least half of the following c
ommon problems, which are raised often on the mailing list. Keep this sectio
n in mind to refer to when you spot the symptom.
20.1 Changing KERNELBASE/KERNELLOAD
You don't ever want to change KERNELLOAD or KERNELBASE, otherwise the virtua
l memory and MMU code will all break. Search for KERNELBASE.
20.2 Leaving the Watchdog enabled
The watchdog is enabled by default, and needs to be disabled at reset for an
ything including BDM to work.
20.3 Mixing code compiled for software and hardware floating point
The usual non-obvious cause of this is combining executables compiled with -
fsoft-float and shared libraries compiled with -fhard-float, or vice-versa.
See floating point.
20.4 Using an unmodified glibc
In particular, remember to remove (or correct the cache line assumptions in)
 sysdeps/powerpc/memset.S before building glibc-2.1.3.
20.5 "Kernel Mode Software FPU Emulation" panic
This has little to do with floating point. Nearly all instructions the proce
ssor can't decode are vectored to this function. It assumes the primary reas
on you are here is to emulate floating point instructions. If the function c
an't decode the instruction as a floating point operation, it is really some
thing the processor can't execute, so the panic message spews forth.
This can be either a software or hardware bug. If it is a software bug, just
 unravel the stack backtrace and debug it. It could be a trashed stack frame
, resulting in a bad function return address, or some indirect function call
 that was not properly computed.
It could also happen because of a hardware bug while fetching instructions f
rom memory. Verify the NIP instruction that it tried to decode is what is re
ally supposed to be at that location in memory. This is a typical failure wh
en the UPM is not programmed correctly. On a custom board in particular, ver
ify all memory cycles an a logic analyser. Disable the cache and try again,
you will probably get a different result.
20.6 NFS gives "neighbour table overflow"
This message is the result of some changes to the IP stack software in Linux
 version 2.2.x +. This simply means that you are unable to connect to your N
FS server. It may be related to the driver, but it may also be related to ot
her issues, such as NFS server not running or incorrectly installed, no phys
her issues, such as NFS server not running or incorrectly installed, no phys
ical connectivity to NFS server, etc. Check the configuration of your NFS se
rver and IP network before diving into the driver.
20.7 "Kernel panic: No init found..." on startup
Either you don't have an init program of some type (even /bin/sh) in your ro
ot filesystem, or you don't have enough shared libraries and the program can
't be loaded properly, although you often get messages about not able to loa
d some .so. Usually the problem is missing or misplaced shared libraries.
To start up /bin/sh, which is a good thing to try initially, you need the en
tire set of glibc shared libraries and libtermcap.so. If you're using the Mo
ntaVista CDK, you get these from the glibc and termcap RPMs, and remember yo
u also need that funky sym link: /opt/hardhat/devkit/ppc/8xx/powerpc-hardhat
-linux -> / in the target filesystem.
You can find out which shared libraries any binary requires using ldd(1), bu
t it only runs on the target and isn't much use if you're cross developing a
nd can't even start a shell yet. A shell script which runs on the host and d
oes much the same thing is available at: http://lists.linuxppc.org/listarcs/
linuxppc-embedded/200102/msg00011.html.
----------------------------------------------------------------------------
---- 
--

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.250]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.217毫秒