移植Linux-2.6.22 到S3C2440的開發板上可以通過printk輸出了

前兩天在移植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 (
[email protected]) (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)的緣故。

雖然有輸出了,但是離移植(並且是板級移植,呵呵)完成還有好一段路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章