2009-08-18 90 views
4

我的手臂工具链可能有问题,但也许还有其他问题,我做错了。我有中国制造的开发板qq2440使用Samsung s3c2440 ARM9 uC。我使用Ubuntu的x86原生的gcc(4.3.3)和交叉编译版本的手臂未知的Linux - uClibc的海湾合作委员会(crosstool的-NG-1.3.2)4.3.2ARM linux和交叉工具链问题

我跟着教程从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' 

对于目标我使用Linux的香草来源版2.6.29,由Leshak创建的修补程序。我不诚实地认为这将会被Linux正式支持,因为它不是主流产品。

我的内核映像开始启动,但它可能会将带宽(或CPU频率)更改为某个非标准值(已尝试所有标准值)。而不是点指示加载内核到内存中,我只有垃圾代替。不幸的是,它不可能完成引导过程,因为网络接口和文件系统都不会出现。所以我发现它在中间的某个地方恐慌。

任何想法接下来应该做什么?

感谢&问候,

克里斯

+2

您可能必须发布一些实际的终端输出以获得任何有用的反馈。 – simon 2009-08-19 02:20:15

+1

您是否获得了预装图像来加载和启动?如果是这样,请尝试使用您的工具链构建演示应用程序,并使用预建的图像运行它。如果一个简单的测试应用程序没有运行,那么工具链安装程序有一些问题,并且您的图像可能没有正确构建。 – simon 2009-08-19 02:22:39

+0

Ubuntukernel对香草核进行了很多调整;您可能想要检查是否是特定于体系结构的不一致,您可能应该有某种/ var/log/boot,您应该显示输出。 – amaterasu 2009-08-19 02:52:11

回答

2

有很多不同的东西,可怎么回事。

听起来好像你正在谈论一个串行端口,而且它似乎在控制权从uboot传递到内核时会产生垃圾。我的理解是否正确?

研究如何在内核命令行上为串行控制台指定波特率,奇偶校验等。

哦,和IIRC,ARM Linux树中有一些'early_printk'的东西,可能会帮助您调试串行控制台问题。 (但是我会提醒你的 - 我已经处理了几年,所以我的记忆很模糊。)

仔细检查内存地址布局(所有各种设备的位置)是否与你的董事会有。 (我认为这可能不是问题,但为了完整性而想提及它。)

你说你有一个正常工作的二进制内核;将该内核的内核配置与用于构建内核的配置进行比较。研究各种差异,特别是针对ARM的任何差异。

您可能需要仔细检查您的工具链的字节顺序与您的董事会期望的字节顺序。 ARM/XScale处理器的某些可以配置为软件中的big-endian或little-endian,因此可能需要进行仔细检查。

+0

您正确的将uboot传递给内核。 内核命令行看起来很好。 我正在使用相同的配置。 存储器布局是正确的。 我会检查endiannes设置,当我回家,并会让你知道。 – 2009-08-19 10:24:34

0

当我从picocom中省略--send-cmd时,我遇到了类似的问题。这是我向picocom发出的mini2440串行uBoot通信命令。

picocom -b 115200的/ dev/ttyS0来--SEND-CMD “SX -vv”

1
  1. 只启用内核调试版本[而建立的uImage],让你得到一个这个场景的更清晰的图片[只需要让你的启动稍微慢一点,因为所有的printk都会启用]。

  2. 你可以检查你是否传递正确的参数到UART即。串行端口名称,它的波特率等这将由主板制造商提供 - 三星

  3. WRT网络而不是DHCP可以分配一个静态IP地址到您的系统,因为它可能是DHCP过程是仍然没有打开。

  4. 另外一个更好的选择是使用NFS,但是,这取决于你的选择和你的应用程序的目的。要使用NFS,你的网络应该是运行的,并且你的文件系统应该共享。

正如retracile已指出“字节序”可能是一个点看看!

你可以参考this链接可能帮助你,因为它是专门针对S3C2440

希望这有助于。

-hjsblogger