【发布时间】:2010-11-20 18:26:23
【问题描述】:
我的手臂工具链可能有问题,但可能还有其他问题。我有中国制造的开发板 qq2440 使用 Samsung s3c2440 ARM9 uC。我正在使用带有本机 gcc(4.3.3) 和交叉编译版本 arm-unknown-linux-uclibc-gcc (crosstool-NG-1.3.2) 4.3.2 的 Ubuntu x86
我遵循http://blog.leshak.ru/english/pages/how-to-install-u-boot-linux-2629-rootfsjffs2-busybox-1132-into-nand-qq2440/ 的教程 并为该板使用了 Leshak 的内核补丁。问题是他的二进制文件可以完美运行,而我的则不行......
我通过 RS232(串行端口)与我的开发板通信,并且我在目标 Linux 上配置了串行终端。我使用 Leshak 的 uboot 映像。要配置我的内核,我使用以下命令行:
qq2440> setenv bootargs 'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 rw console=ttySAC0,115200'
对于目标,我使用 vanilla Linux 源版本 2.6.29,带有由 Leshak 创建的补丁。我真的不相信 Linux 会正式支持它,因为它不是主流产品。
我的内核映像开始启动,但它可能会将带宽(或 CPU 频率)更改为某个非标准值(已尝试所有标准值)。而不是指示将内核加载到内存中的点,我只有垃圾。不幸的是,它可能不会完成启动过程,因为网络接口和文件系统都没有出现。所以我发现它在中间的某个地方出现了恐慌。
有什么想法我接下来应该做什么?
感谢和问候,
克里斯
【问题讨论】:
-
您可能需要发布一些实际的终端输出以获得任何有用的反馈。
-
您是否获得了要加载和启动的预构建映像?如果是这样,请尝试使用您的工具链构建一个演示应用程序并使用预构建的图像运行它。如果一个简单的测试应用程序没有运行,那么工具链设置有问题,你的图像可能没有正确构建。
-
Ubuntukernel 在原版内核上做了很多调整;您可能想要检查特定于体系结构的不一致,您可能应该有某种 /var/log/boot 来显示输出。
-
@simon: 将用我的工具链编译一些简单的测试应用程序(如 led 测试),看看它是否有效
-
@simon:我一回到家就会添加一些输出
标签: linux embedded kernel arm toolchain