移植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)的缘故。
虽然有输出了,但是离移植(并且是板级移植,呵呵)完成还有好一段路。
通过修改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)的缘故。
虽然有输出了,但是离移植(并且是板级移植,呵呵)完成还有好一段路。
相关文章推荐
- s3c2440移植linux-2.6.22 内核启动卡在Uncompressing Linux..... done, booting the kernel.
- Linux 2.6.22.6移植到S3C2440之通过nfs启动qt并添加USB鼠标支持
- 慢慢学Linux驱动开发,第三篇,关于printk的输出总结
- 慢慢学Linux驱动开发,第三篇,关于printk的输出总结
- linux-2.6.22 移植DM9000 micro2440 s3c2440 :NETDEV WATCHDOG: eth0: transmit timed out
- android开发中怎么通过Log函数输出当前行号和当前函数名
- 基于S3C2440的Linux-3.6.6移植——实时时钟RTC
- S3C2440 Linux驱动移植——AT24C02(EEPROM)驱动
- arm+linux下usb驱动开发,移植Libusb以及开发应用调试过程
- 基于S3C2440的Linux SPI驱动移植笔记
- 嵌入式 Linux开发Kernel移植(一)——kernel内核简介
- 基于Linux2.6.22和s3c2440的串口驱动简析
- 基于S3C2440的Linux-3.6.6移植——解决LCD自动关闭
- 转载自 Ubuntu中文论坛---linux内核移植-移植2.6.35.4内核到s3c2440
- Davinci DM6446开发攻略——linux-2.6.18移植 推荐
- Linux开发环境在pxa270平台上的搭建(1)——u-boot移植
- linux-2.6.34内核的移植(s3c2440)
- Linux应用程序开发(一)---移植thttpd+Sqlite3+PHP5到arm linux(1)
- Linux-2.6.32.2内核在mini2440上的移植(一)---构建自主开发环境