QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2047|回复: 3

怎么才能正确编译2.6.20在at91rm9200模拟出来

[复制链接]
发表于 2008-2-28 21:17:28 | 显示全部楼层 |阅读模式
搞了很长时间skyeye了还是没有完全成功好像这个比较难编译内核,不知道testsuit
里的是怎么编译出来的论坛里回帖子的热情也很少
我想模拟at91rm9200的linux2.6
看了wiki的介绍好像就改一点就可以运行但是我按at91rm9200dk_defconfig改了bootline
后启动提示division zero by kernel
不知道为什么好像是串口的问题吧内核只有算串口波特率的时候用除法
谁知道怎么能正确编译2.6.20内核 选项怎么设置有config文件吗
这里的版主好像也不怎么回答问题我发了几次消息也没人理我啊
发表于 2008-3-1 20:55:23 | 显示全部楼层
我可以在linux-2.6.24上重现这个bug , 你能否在http://sourceforge.net/projects/skyeye/ 上提交一下这个bug报告?这样我们可以在这次release中解决它
回复

使用道具 举报

 楼主| 发表于 2008-3-3 20:19:42 | 显示全部楼层
呵呵真不好意思我没怎么用过wiki不会提交啊
以下下是我试验的内容:
我用的skyeye1.2.4版本仿真at91rm9200dk,testsuit2.3 HOST FC8 arm-linux-gcc 3.4.1
测试官方linux2.6.20没打任何补丁按照wiki修改hardware.h禁止了
RTC后make ARCH=arm CROSS_COMPILE=arm-linux- at91rm9200dk_defconfig
按照testsuit里的skyeye.conf修改了.config里的bootline
make ARCH=arm CROSS_COMPILE=arm-linux-
skyeye -e vmlinux后
内核打印到
Clocks: CPU 0MHz: XXX0MHz,main 18.3XXMHz
后来就提示division zero by kernel
看了源代码原理内核初始化时钟的时候用了MCKR而skyeye好像没有赋值造成freq=0
给内核MCKR=202后显示CPU=37M不显示division zero by kernel了
但是运行到Freeing init memory XXk后没有任何显示输出了
printk跟踪了后发现内核运行到main.c最后了execve(/bin/sh)了
我记得do_execve函数返回0是运行正常的不知道对不对,现在发现返回的是0但是新进程却不运行
arm-linux-gcc hello.c -o sh --static替换调/BIN/SH后直接kernel panic没有打印hello world
但是在testsuit自带的at91rm9200内核却可以打印hello world不知道错误在哪里 怎么往下继续调试了
另外发现skyeye1.2.4运行testsuit 2。3里的at91rm9200 2。6内核启动到/bin/sh后只显示到#>提示符后就不能接收输入了
为什么skyeye1.2.1就没有此问题 请大家指教
回复

使用道具 举报

 楼主| 发表于 2008-3-14 20:51:42 | 显示全部楼层
自己顶一下吧 可以跑起来了
把commandline里console=ttyS0 改成ttyS1另外把skyeye 1。2。4里skyeye_math_at91rm9200.c里io_do_cycle里

if( (((io.uart.cr & 0x30) >> 4)) == 0x2 )  0x2改成0x1把内核选项里usb支持去掉 只保留skyeye模拟的外设drivers就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 00:45 , Processed in 0.043337 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表