您的位置:首页 > 运维架构 > Linux

移植Linux-2.6.22 到S3C2440的开发板上可以通过printk输出了

2007-10-17 21:46 405 查看
前两天在移植Linux的过程中,当程序运行到init/main.c中的start_kernel()时,调用printk,死活不能通过串口输出,且有输出时,是乱码, 如下:



通过修改mach-smdk2440.c中的函数smdk2440_map_io(),将

s3c24xx_init_clocks(16934400)修改


s3c24xx_init_clocks(12000000).终于能够有输出了:
....
done, booting the kernel.
in start_kernel
Linux version 2.6.22.5 (root@localhost.localdomain) (gcc version 3.4.5) #69 PRE7CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
Machine: SMDK2440
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz
S3C24XX Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
CPU0: D VIVT write-back cache

....

这是因为根据原理图,



晶振的频率是12MHz, 这是需要修改s3c24xx_init_clocks(12000000)的缘故。

虽然有输出了,但是离移植(并且是板级移植,呵呵)完成还有好一段路。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: