QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1289|回复: 2

神啊,救救我吧at91rm9200-linux2.4.27

[复制链接]
发表于 2005-3-10 22:11:02 | 显示全部楼层 |阅读模式
我已经折腾了十几天了:
1.将2.4.27内核打补丁:patch-2.4.27-vrs1;2.4.27-vrs1-at91
然后make mrproper ;make clean;

2.将include/asm/arch/at91rm9200dk.h,把相应的宏定义,修改成如下
#define AT91_SDRAM_BASE 0xc0000000 // NCS1: SDRAM physical base address

#define AT91C_UART_MAP { 0, 4, -1, -1, -1 } /* ttyS0, ..., ttyS4 */  
3.更改Makefile中对应项
ARCH := arm
CROSS_COMPILE         =/usr/ESD/armlinux3.3.2/bin/arm-linux-
4.顺序执行以下命令:
make at91rm9200dk_config
make oldconfig  (之后更改.config中的CONFIG_CMDLINE
                ="root=/dev/ram0 initrd=0xc0200000,0x00500000 rw console=ttyS0")
make dep&&make
5.编译顺利完成,将vmlinux可执行文件拷到skyeye测试目录中.
6.skyeye.conf内容如下:

cpu: arm920t
mach: at91rm92
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=R, addr=0x00100000, size=0x00010000
mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00200000
mem_bank: map=M, type=RW, addr=0xc0200000, size=0x00500000, file=./initrd.img
mem_bank: map=M, type=RW, addr=0xc0700000, size=0x00900000
mem_bank: map=I, type=RW, addr=0xfffa0000, size=0x00060000

注:initrd.img文件系统用的ftp服务器下载的skyeye-binary-testutils中ep7312的,<<源码开放...>>书中附带
光盘的initrd.img我也使过.
7.运行出现:
(SkyEye) file vmlinux
Reading symbols from vmlinux...
(no debugging symbols found)...done.
(SkyEye) tar s
cpu info: armv4, arm920t, 41009200, ff00fff0, 2
mach info: name at91rm92, mach_init addr 0x81431e8
SKYEYE: use arm920t mmu ops
Loaded ROM ./initrd.img
Connected to the simulator.
(SkyEye) load
Loading section .init, size 0xd000 vma 0xc0008000
Loading section .text, size 0xf8114 vma 0xc0015000
Loading section .kstrtab, size 0x4710 vma 0xc010d114
Loading section __ex_table, size 0x860 vma 0xc0111830
Loading section __ksymtab, size 0x21a8 vma 0xc0112090
Loading section .data, size 0xae84 vma 0xc0116000
Start address 0xc0008000
Transfer rate: 9143680 bits/sec.
(SkyEye) run
Starting program: /usr/skyeyetest/vmlinux
Linux version 2.4.27-vrs1 (root@localhost) (gcc version 3.3.2)                                                 #7 四 3月 10 21:29:15 CST 2005
CPU: Arm920Tid(wb) revision 0
Machine: ATMEL AT91RM9200
Warning: bad configuration page, trying to continue
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/ram
Calibrating delay loop...


就没反应了!!

命令行我也试过好几种,结果都是这样


哪位大侠拔刀相助!小弟铭感在心!
发表于 2005-3-11 10:31:03 | 显示全部楼层
Calibrating delay loop...

这个问题就是在开中断的时候至少内核要让 时钟中断运行一次,你停止在这里原因就是你的linux的中断没有设置好,你好好检查一下
回复

使用道具 举报

发表于 2005-3-15 09:46:34 | 显示全部楼层
需要修改文件:include/asm/arch/time.h
函数at91rm9200_timer_interrupt里,把do,while注释掉,如下:

//do {
                        do_leds();
                        do_timer(regs);

                        AT91_SYS->ST_RTAR = (AT91_SYS->ST_RTAR + LATCH) & AT91C_ST_ALMV;

                //} while (((read_CRTR() - AT91_SYS->ST_RTAR) & AT91C_ST_ALMV) >= LATCH);
改后应该没有问题。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-22 20:40 , Processed in 0.035668 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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