娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

Linux 3.3.0移植到S3C6410開發板上之一

發布者:EtherealGrace最新更新時間:2024-09-19 來源: cnblogs關鍵字:Linux  移植  S3C6410開發板 手機看文章 掃描二維碼
隨時隨地手機看文章

這里僅僅是移植成功內核,可以掛載文件系統運行,至于驅動會陸續添加。


第一步:到內核官網上下載最新的內核,我下載的是linux-3.3-rc3.tar.bz2。


第二步:解壓內核,進入arch/arm/mach-s3c64xx目錄下,看到不少6410的板級文件,我們這里選擇mini6410開開展工作,在目錄下將mach-mini6410.c文件復制一份,命名為:mach-jfj6410.c。這里我們將文件里面關于mini6410的字樣都修改為jfj6410.但是這里要注意,MACHINE_START(JFJ6410, 'JFJ6410')這里的JFJ6410要使用大寫,稍候說明為什么。大家都知道在一個目錄下添加了文件后,都應該修改當前目錄下的Kconfig和Makefile兩個文件,這是Linux系統編譯的要求。至于怎么修改,仔細看一下文件內容我相信大家都知道。


Kconfig文件是進行make menuconfig時出現的配置選項,這里我們添加了自己的板級文件肯定要添加配置選項。內容可以復制MINI6410的。如下:           


config MACH_JFJ6410

bool 'JFJ6410'

select CPU_S3C6410

select S3C_DEV_HSMMC

select S3C_DEV_HSMMC1

select S3C64XX_SETUP_SDHCI

select S3C_DEV_USB_HOST

select S3C_DEV_NAND

select S3C_DEV_FB

select S3C64XX_SETUP_FB_24BPP

select SAMSUNG_DEV_ADC

select SAMSUNG_DEV_TS

help

  Machine support for the JFJKJ JFJ6410

           這里你應該能夠看出之前為什么要在那個地方單獨使用大寫了吧,就是為了保持一致。

          Makefile文件就是說明要編譯的文件,以及編譯的規則,這里顯然就是要編譯我們自己的板級文件mach-jfj6410.c,具體如下:


obj-$(CONFIG_MACH_JFJ6410) += mach-jfj6410.o

        第三步:配置內核,make menuconfig。這里我是使用內核自帶的s3c6400_defconfig文件進行修改的,這樣比較簡單,呵呵。基本去掉了大部分的驅動,留下了串口驅動和NAND驅動。

       第四步:編譯make zImage。呵呵,這樣就生成了我們需要的內核。


       第五步:燒寫,測試內核。因為我們是測試內核,所以U-Boot以及根文件系統都是使用之前的,這里沒有移植yaffs,所以我目前使用cramfs格式的文件系統。


       啟動開發板后出現了如下的錯誤:


end_request: I/O error, dev mtdblock2, sector 0

FAT: unable to read boot sector

VFS: Cannot open root device 'mtdblock2' or unknown-block(31,2)

Please append a correct 'root=' boot option; here are the available partitions:

1f00        192 mtdblock0 (driver?)

1f01       1856 mtdblock1 (driver?)

1f02      30720 mtdblock2 (driver?)

1f03      32768 mtdblock3 (driver?)

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)

       后來上網查了很久才發現是驅動的問題。U-boot使用軟件ECC,我們在配置NAND驅動的時候提示是否選擇使用NAND硬件ECC,我試了一下,無論你選不選都出現這個問題,我才發現,它的配置包含三重含義,選中--->使用硬件ECC;不選--->使用NAND的軟件ECC(和U-Boot的軟件ECC不是一回事);而我們這里需要的是不使用NAND的ECC,也就是禁止,不然就會和U-Boot沖突,出現上面的錯誤。要禁止NAND的ECC,我們修改drivers/mtd/nand/s3c2410.c這個文件,在845行的地方。

      源代碼為:                      


chip->ecc.mode = NAND_ECC_SOFT;

      修改為:

chip->ecc.mode = NAND_ECC_NONE;

      這就是當我們不選中的時候,不是使用NAND的軟件ECC,而是不使用NAND的ECC。

      再次編譯內核,燒寫后正常運行,打印的信息如下:


Starting kernel ...


Uncompressing Linux... done, booting the kernel.

Booting Linux on physical CPU 0

Linux version 3.3.0-rc3 (chenlong12580@chenlong12580) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #4 Mon Feb 13 14:58:00 CST 2012

CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387d

CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache

Machine: JFJ6410

Memory policy: ECC disabled, Data cache writeback

CPU S3C6410 (id 0x36410101)

S3C24XX Clocks, Copyright 2004 Simtec Electronics

camera: no parent clock specified

S3C64XX: PLL settings, A=532000000, M=532000000, E=24000000

S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000

mout_apll: source is fout_apll (1), rate is 532000000

mout_epll: source is epll (1), rate is 24000000

mout_mpll: source is mpll (1), rate is 532000000

usb-bus-host: source is clk_48m (0), rate is 48000000

audio-bus: source is mout_epll (0), rate is 24000000

audio-bus: source is mout_epll (0), rate is 24000000

audio-bus: source is mout_epll (0), rate is 24000000

irda-bus: source is mout_epll (0), rate is 24000000

camera: no parent clock specified

CPU: found DTCM0 8k @ 00000000, not enabled

CPU: moved DTCM0 8k to fffe8000, enabled

CPU: found DTCM1 8k @ 00000000, not enabled

CPU: moved DTCM1 8k to fffea000, enabled

CPU: found ITCM0 8k @ 00000000, not enabled

CPU: moved ITCM0 8k to fffe0000, enabled

CPU: found ITCM1 8k @ 00000000, not enabled

CPU: moved ITCM1 8k to fffe2000, enabled

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024

Kernel command line: root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200

PID hash table entries: 1024 (order: 0, 4096 bytes)

Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)

Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)

Memory: 256MB = 256MB total

Memory: 257500k/257500k available, 4644k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    DTCM    : 0xfffe8000 - 0xfffec000   (  16 kB)

    ITCM    : 0xfffe0000 - 0xfffe4000   (  16 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)

    lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)

    modules : 0xbf000000 - 0xc0000000   (  16 MB)

      .text : 0xc0008000 - 0xc01d90b8   (1861 kB)

      .init : 0xc01da000 - 0xc01f5000   ( 108 kB)

      .data : 0xc01f6000 - 0xc0216a40   ( 131 kB)

       .bss : 0xc0217024 - 0xc0246c58   ( 192 kB)

SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

NR_IRQS:246

VIC @f6000000: id 0x00041192, vendor 0x41

VIC @f6010000: id 0x00041192, vendor 0x41

Console: colour dummy device 80x30

Calibrating delay loop... 528.79 BogoMIPS (lpj=2643968)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

Setting up static identity map for 0x5015e320 - 0x5015e37c

gpiochip_add: registered GPIOs 38 to 53 on device: GPF

gpiochip_add: registered GPIOs 74 to 89 on device: GPI

gpiochip_add: registered GPIOs 91 to 102 on device: GPJ

gpiochip_add: registered GPIOs 161 to 176 on device: GPO

gpiochip_add: registered GPIOs 178 to 192 on device: GPP

gpiochip_add: registered GPIOs 194 to 202 on device: GPQ

gpiochip_add: registered GPIOs 144 to 159 on device: GPN

gpiochip_add: registered GPIOs 0 to 7 on device: GPA

gpiochip_add: registered GPIOs 9 to 15 on device: GPB

gpiochip_add: registered GPIOs 17 to 24 on device: GPC

gpiochip_add: registered GPIOs 26 to 30 on device: GPD

gpiochip_add: registered GPIOs 32 to 36 on device: GPE

gpiochip_add: registered GPIOs 55 to 61 on device: GPG

gpiochip_add: registered GPIOs 137 to 142 on device: GPM

gpiochip_add: registered GPIOs 63 to 72 on device: GPH

gpiochip_add: registered GPIOs 104 to 119 on device: GPK

gpiochip_add: registered GPIOs 121 to 135 on device: GPL

jfj6410: Option string jfj6410=0

jfj6410: selected LCD display is 480x272

S3C6410: Initialising architecture

bio: create slab at 0

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

start plist test

end plist test

Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled

s3c6400-uart.0: ttySAC0 at MMIO 0x7f005000 (irq = 69) is a S3C6400/10

console [ttySAC0] enabled

s3c6400-uart.1: ttySAC1 at MMIO 0x7f005400 (irq = 70) is a S3C6400/10

s3c6400-uart.2: ttySAC2 at MMIO 0x7f005800 (irq = 71) is a S3C6400/10

s3c6400-uart.3: ttySAC3 at MMIO 0x7f005c00 (irq = 72) is a S3C6400/10

brd: module loaded

loop: module loaded

S3C24XX NAND Driver, (c) 2004 Simtec Electronics

s3c24xx-nand s3c6400-nand: Tacls=4, 30ns Twrph0=8 60ns, Twrph1=6 45ns

s3c24xx-nand s3c6400-nand: System booted from NAND

s3c24xx-nand s3c6400-nand: NAND ECC disabled

NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)

NAND_ECC_NONE selected by board driver. This is not recommended!

Scanning device for bad blocks

Bad eraseblock 1050 at 0x000008340000

Bad eraseblock 1076 at 0x000008680000

Bad eraseblock 1211 at 0x000009760000

Bad eraseblock 1949 at 0x00000f3a0000

Creating 4 MTD partitions on 'nand':

0x000000000000-0x000000100000 : 'Bootloader'

0x000000100000-0x000000600000 : 'Kernel'

0x000000600000-0x000007e00000 : 'User'

0x000007e00000-0x000010000000 : 'File System'

mousedev: PS/2 mouse device common for all mice

VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5

VFS: Mounted root (cramfs filesystem) readonly on device 31:2.

Freeing init memory: 108K

mount: mounting none on /proc/bus/usb failed: No such file or directory

hwclock: can't open '/dev/misc/rtc': No such file or directory

depmod: chdir(3.3.0-rc3): No such file or directory

[01/Jan/1970:00:00:07 +0000] boa.c:173 - unable to create socket: Function not implemented

                        

open device leds: No such file or directory

/usr/sbin/alsactl: load_state:1610: No soundcards found...

                        

ifconfig: socket: Function not implemented

Try to bring eth0 interface up......cat: can't open '/sys/class/net/eth0/address': No such file or directory

ifconfig: socket: Function not implemented

route: socket: Function not implemented

/etc/init.d/ifconfig-eth0: line 6: can't create /etc/resolv.conf: Read-only file system

Done


Please press Enter to activate this console. 

[root@JFJ6410 /]# ls

bin      etc      lib      mnt      proc     sbin     tmp      var

dev      home     linuxrc  opt      root     sys      usr      www

[root@JFJ6410 /]# 


關鍵字:Linux  移植  S3C6410開發板 引用地址:Linux 3.3.0移植到S3C6410開發板上之一

上一篇:S3C6410串口平臺設備注冊流程分析
下一篇:搭建S3C6410開發板的測試環境

推薦閱讀最新更新時間:2025-06-22 12:17

搭建S3C6410開發板的測試環境
ARM架構的開發板可基于X86架構的PC在CPU指令以及二進制格式上都有所不同。Linux驅動需要訪問硬件且這些硬件很難在PC上進行模擬,那么就要在帶有這些硬件的開發板上進行調試和測試。 S3C6410是由三星公司推出的一款低功耗,高性價比的RISC處理器,基于ARM11內核,可廣泛應用于移動電話和通用處理等領域。其為2.5G和3G通信服務提供了優化的硬件性能,內置強大的硬件加速器,集成了一個MFC,支持MPEG4/H.263/H.264編解碼和VC1解碼,能提供實時視頻會議及NRSC和PAL制式的TV輸出。 內置一個采用最先進技術的3D加速器,支持OpenGL ES 1.1/ 2.0和D3DM API 能實現4M triangl
[單片機]
搭建<font color='red'>S3</font>C6410<font color='red'>開發板</font>的測試環境
u-boot 移植 --->6、引導Linux啟動測試
在引導Linux開機之前需要先清楚Linux啟動的必要或者說是先決條件,這里就是提到了u-boot的作用了引用百度云---主要用于嵌入式系統的引導加載,其實在我調試下來總結一下就是初始化硬件這里的硬件包括必要部分和不必要的部分,比如SOC的時鐘,外部RAM(DDR內存),棧等。因為linux的內核相對于SOC內部的RAM而言還是比較龐大的,并且運行Linux的SOC的主頻普遍是比較高的,受限于flash的訪問速度,Linux肯定是不能像單片機的程序一樣放在片上flash運行的,畢竟在48M以上的時候常見的單片機都是需要加wait以匹配CPU和flash的速度差距了。所以u-boot一定的需要先初始化好RAM(DDR)然后將linu
[單片機]
linux2.6.32.2 mini2440平臺移植-- UDA1341 音頻驅動移植
1.6.1 在初始化文件中加入 UDA1341 設備結構 Linux-2.6.32.2已經完美的支持UDA1341音頻芯片的驅動,我們只要在arch/arm/mach-s3c2440/mach-mini2440.c 文件中注冊 UDA1341 平臺設備的控制端口就可以了,打開 mach-mini2440.c,添加如下內容: //在文件首部添加頭文件 #include sound/s3c24xx_uda134x.h //在 LCD 平臺設備后面添加 UDA1341 設備結構 static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = {
[單片機]
Linux 移植 】——4、移植 u-boot-2012.04.01 之 支持NAND啟動
三、移植 u-boot-2012.04.01 之 支持NAND啟動 需要進行修改和添加的文件: 1、添加的文件:init.c 包含NAND Flash 的相關配置 board/samsung/smdk2440目錄, 修改Makefile 2、需要修改的文件: a、去掉-pie選項,修改arch/arm/config.mk b、start.S c、smdk2440.h d、common.h e、board.c f、arch/arm/cpu/u-boot.lds 1、添加的文件:init.c init.c 代碼如下: /* NAND FLASH控制器 */ #define N
[單片機]
在FS2410開發板移植linux2.6.24初步成功
說是移植,也不太準確,因為linux2.6.24內核已經將s3c2410納入。在移植的時候只是需要做幾個小的改動以及幾個注意的地方。 一. 前言 使用的內核:linux2.6.24, http://www.kernel.org/pub/linux/kernel/v2.6/ 使用的arm交叉編譯工具(4.2.1): http://www.codesourcery.com/gnu_toolchains/arm/download.html 環境:VMware中的Ubuntu 7.10 二. 移植 1. 修改MakeFile文件,確定arm平臺以及使用的交叉編譯工具: 修改的文件: linux-2.6.24/Makefile 修改
[單片機]
ARM-Linux觸摸屏驅動移植--問題總結
硬件平臺:FL2440 內核版本:2.6.28 主機系統:Ubuntu 11.04 內核版本:2.6.39 1、由于自己編譯的內核觸摸屏驅動選項選擇的問題,觸摸屏搞了好久 由于自己編譯內核將觸摸屏驅動以模塊的形式編譯的,方便自己調試ADC驅動和觸摸屏驅動。遇到以下問題: 編譯完觸摸屏驅動完成后,利用insmod ts.ko加載驅動,之后在/dev/下生成鼠標結點文件mouse0,沒有生成ts0 由于將觸摸屏接口也一M的形式編譯了,改成* /dev下不生成event*節點,編譯選項中選擇Event interface 后面的touch screen驅動以模塊的形式編譯進內核,手動加載,方便自己調試 重
[單片機]
ARM-<font color='red'>Linux</font>觸摸屏驅動<font color='red'>移植</font>--問題總結
基于ARM的嵌入式linux 內核的裁剪與移植
0 引言 微處理器的產生為價格低廉、結構小巧的CPU和外設的連接提供了穩定可靠的硬件架構,這樣,限制嵌入式系統發展的瓶頸就突出表現在了軟件方面。盡管從八十年代末開始,已經陸續出現了一些嵌入式操作系統(比較著名的有Vxwork、pSOS、Neculeus和Windows CE)。但這些專用操作系統都是商業化產品,其高昂的價格使許多低端產品的小公司望而卻步;而且,源代碼封閉性也大大限制了開發者的積極性。而Linux的開放性,使得許多人都認為Linux非常適合多數Intemet設備。Linux操作系統可以支持不同的設備和不同的配置。Linux對廠商不偏不倚,而且成本極低,因而很快成為用于各種設備的操作系統。嵌入式linux是大勢所趨
[單片機]
深度解讀S3C2410A的嵌入式系統的U-Boot移植
0 引 言 ARM嵌入式處理器已被廣泛應用于消費電子產品、無線通信、網絡通信和工業控制等領域。其中,ARM9的芯片更是以其低價格、低功耗、高性能在手持設備中占據著重要市場。在嵌入式操作系統中,Linux,Vxworks,WinCE三足鼎立,其中Linux由于其開源性、穩定性、安全性、可裁減性更是一支獨放。在嵌入式系統中,如何實現在ARM9平臺下Linux操作系統的引導工作是嵌入式技術開發的重要環節。 1 嵌入式系統的軟件組成 1.1 系統的軟件組成 嵌入式的軟件系統主要由Bootloader、操作系統、文件系統、應用程序等組成。其中,Bootloader是介于硬件和操作系統之間的一層,其作用就好像PC機中的BIOS。系統加電運
[單片機]
深度解讀S<font color='red'>3</font>C2410A的嵌入式系統的U-Boot<font color='red'>移植</font>
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 平南县| 宝鸡市| 桦甸市| 阿图什市| 宜良县| 韶山市| 左权县| 西乌珠穆沁旗| 科技| 奉化市| 双柏县| 耒阳市| 邓州市| 天柱县| 阳曲县| 博兴县| 兴宁市| 子长县| 玛曲县| 板桥市| 忻州市| 调兵山市| 连南| 涞水县| 滨州市| 宁都县| 平湖市| 陈巴尔虎旗| 蓬安县| 万宁市| 东明县| 阳泉市| 南开区| 青海省| 磴口县| 芷江| 桃园县| 盐边县| 汤阴县| 阳曲县| 西林县|