内核(2.6.14) + 根文件系统 +Qtopia Core 4移植 for S3C2410

最新更新时间:2021-10-14来源: eefocus关键字:内核  根文件系统  Qtopia  Core  移植  S3C2410 手机看文章 扫描二维码
随时随地手机看文章

TARGET

CPU:   S3C2410X

SDRAM: HY57V561620(32MB) × 2

FLASH: K9F1208(64MB)

NET:   CS8900

HOST

Linux Realse Version: Fecora Core 6

CrossCompiler: gcc-4.1.1/arm-linux-gcc-3.4.1


一、内核移植(2.6.14)

1   修改linux2.6.14下面的makefile文件

    找到ARCH和CROSS_COMPILE,修改

    ARCH ?= arm

    CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux- 

(此处为你交叉编译的路径)

 

2  设置flash分区

    在arch/arm/machs3c2410/devs.c文件中添加头文件

    #include

    #include

    #include  

    然后建立分区表

    /* 一个Nand Flash总共64MB, 按如下大小进行分区 分区大小自己看着办*/

    static struct mtd_partition partition_info[] ={

        { /* 1MB */

            name: "bootloader",

            size: 0x00100000,

            offset: 0x0,

        },{ /* 3MB */

            name: "kernel",

            size: 0x00300000,

            offset: 0x00100000,

        }, { /* 40MB */

            name: "root",

            size: 0x02800000,

            offset: 0x00400000,

        }, { /* 20MB */

        name: "user",

        size: 0x00f00000,

        offset: 0x02d00000,

        }

    };

 

    /*加入Nand Flash分区*/

    struct s3c2410_nand_set nandset ={

    nr_partitions: 4, /*指明partition_info中定义的分区数目*/

    partitions: partition_info, /* partition table分区信息表*/

    };

 

    /*建立Nand Flash芯片支持*/

    struct s3c2410_platform_nand superlpplatform={

        tacls:0,

        twrph0:30,

        twrph1:0,

        sets: &nandset,

        nr_sets: 1,

    };

    tacls, twrph0, twrph1的意思见S3C2410手册的63,

    这3个值最后会被设置到NFCONF中,见S3C2410手册66.

    sets: 支持的分区集        nr_set:分区集的个数

   

    /*加入Nand Flash芯片支持到Nand Flash驱动

    另外,还要修改此文件中的s3c_device_nand结构体变量,添加对dev成员的赋值*/

    struct platform_device s3c_device_nand = {

        .name = "s3c2410-nand",

            /* Device name */

        .id = -1,

            /* Device ID */

        .num_resources = ARRAY_SIZE(s3c_nand_resource),

        .resource = s3c_nand_resource, /* Nand Flash Controller Registers */

            /* Add the Nand Flash device */

        .dev = {

        .platform_data = &superlpplatform

        }

    };

    指定启动时初始化

    arch/arm/machs-3c2410/mach-smdk2410.c文件

    找到platform_device *smdk2410_devices[] __initdata函数,在该函数体最后加上一条语句:

    &s3c_device_nand,

 

    禁用禁止Flash ECC校验(有不同说法)

    修改drivers/mtd/nand/s3c2410.c

    找到chip->eccmode = NAND_ECC_SOFT;

    改为chip->eccmode = NAND_ECC_NONE;

   

    支持启动挂载devfs

    修改fs/Kconfig文件 

    找到menu "Pseudo filesystems" 添加

    config DEVFS_FS

        bool "/dev file system support (OBSOLETE)"

        default y

 

    config DEVFS_MOUNT

        bool "Automatically mount at boot"

        default y

        depends on DEVFS_FS

 

3   Yaffs2文件系统支持

下载yaffs2.tar.gz源码包,解压源码,并进入目录执行

#./patch-ker.sh c /linux-2.6.14.1/

注:假定内核源码在/linux-2.6.14.1/

 

4   编译配置内核,首先先load一个默认的内核/linux-2.6.14/arch/arm/configs/smdk2410_defconfig,在这个配置文件上改

    Loadable module support >

        [*] Enable loadable module support

            [*] Automatic kernel module loading

 

    System Type >

        [*] S3C2410 DMA support

 

    Boot options >

        Default kernel command string:

        noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200

 

    Floating point emulation >

        [*] NWFPE math emulation

 

    Device Drivers >

        Memory Technology Devices (MTD) >

            [*] MTD partitioning support

                #支持MTD分区,这样我们在前面设置的分区才有意义

            [*] Command line partition table parsing

                #支持从命令行设置flash分区信息,灵活

            RAM/ROM/Flash chip drivers >

                <*> Detect flash chips by Common Flash Interface (CFI) probe

                <*> Detect nonCFI AMD/JEDECcompatible flash chips

                <*> Support for Intel/Sharp flash chips

                <*> Support for AMD/Fujitsu flash chips

                <*> Support for ROM chips in bus mapping

            NAND Flash Device Drivers >

                <*> NAND Device Support

                <*> NAND Flash support for S3C2410/S3C2440 SoC

       

Character devices >

            [*] Nonstandard serial port support

            [*] S3C2410 RTC Driver

 

    File systems >

        <> Second extended fs support #去除对ext2的支持

        Pseudo filesystems >

            [*] /proc file system support

            [*] Virtual memory file system support (former shm fs)

            [*] /dev file system support (OBSOLETE)

            [*] Automatically mount at boot (NEW)

                #这里会看到我们前先修改fs/Kconfig的成果,devfs已经被支持上了

        Miscellaneous filesystems >

            <*> Compressed ROM file system support (cramfs) #支持cramfs

            <*> YAFFS2 file system support                  #支持yaffs2

        Network File Systems >

            <*> NFS file system support

 

二、CS8900网卡驱动的移植

1   cs8900.c和cs8900.h放到/drivers/net/arm/

 

2   在cs8900.c中的cs8900_probe()函数中,memset (&priv,0,sizeof (cs8900_t));函数之后添加如下两条语句:

    __raw_writel(0x2211d110,S3C2410_BWSCON);

    __raw_writel(0x1f7c,S3C2410_BANKCON3); 

    添加头文件#include

 

3   修改drivers/net/arm/目录下的Kconfig文件,在最后添加如下内容:

    config ARM_CS8900

   tristate "CS8900 support"

        depends on NET_ETHERNET && ARM && ARCH_SMDK2410

    help

 

4   修改drivers/net/arm/目录下的Makefile文件,在最后添加如下内容:

    obj-$(CONFIG_ARM_CS8900)    += cs8900.o

 

5   在/arch/arm/mach-s3c2410/mach-smdk2410.c文件中,找到smdk2410_iodesc[]结构数组,添加如下如下内容:{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE}

    添加头文件#inlcude  

[1] [2] [3] [4]
关键字:内核  根文件系统  Qtopia  Core  移植  S3C2410 编辑:什么鱼 引用地址:内核(2.6.14) + 根文件系统 +Qtopia Core 4移植 for S3C2410

上一篇:初试mini2440 nandflash驱动移植
下一篇:S3C2440A串口驱动-WINCE6.0下通过串口和外设进行数据通信(一)

推荐阅读

Haviv Ilan 将担任德州仪器下一任总裁及首席执行官,4 月 1 日起生效
德州仪器今日宣布,公司董事会已任命 Haviv Ilan 为下一任总裁及首席执行官,4 月 1 日起生效。Haviv Ilan 在德州仪器工作了 24 年,他将接替德州仪器现任总裁及首席执行官 Rich Templeton,后者将在未来的两个多月时间内卸任以上职位,但将继续担任公司董事长。该过渡是公司一项精心计划的继承,Haviv Ilan 于 2014 年被晋升为高级副总裁,于 2020 年被晋升为执行副总裁及首席运营官,并在 2021 年入选董事会。Rich Templeton 表示:“Haviv 是一位有感召力的领导者,深受我们客户、员工和股东们的尊敬。他有着出色的业绩记录,对创新高度关注且对获得成功充满热情,所有这些都使他成
发表于 2023-01-20
Haviv Ilan 将担任德州仪器下一任总裁及首席执行官,<font color='red'>4</font> 月 1 日起生效
丰田混动核心所在 4L级油耗全靠它?这变速箱可不简单!
尽管最近行业热门是插混车和增程式的“谁才是大佬”的争夺,但对于大多数人来说,恐怕油电混动车才是那个最稳妥,最适合绝大多数人的选择。我们都知道,油混车大多能做到很低的平均油耗,不管怎么开,不管天冷天热,油耗顶多也就5L出头,低的甚至能跑到3L。所以,油混车靠什么实现这么低的油耗?大多数媒体会告诉你,靠的是阿特金森循环发动机和电机的完美合作。对,这是事实,但如果我们再追问:这两玩意到底是通过什么方式合作的?估计就没多少人回答得上来了。e-CVT变速箱,就是干这个事儿的。但大家可千万别被它的名字蒙蔽了,e-CVT,跟我们认知中的那种CVT变速箱,压根不是一种东西。CVT变速箱的结构估计大家都知道:两个钢轮,中间是钢带。钢轮是可动的,钢带在
发表于 2023-01-18
丰田混动核心所在 <font color='red'>4</font>L级油耗全靠它?这变速箱可不简单!
一文解析大众ID4.X的网络架构及各类控制器
最近一直在写不同车型的技术相关的文章,前几天写了蔚来EC6和比亚迪海豹的,今天来分享一下大众ID.4X的,之前也零零散散写过一些,最近刚好拿到比较完整的资料,那就比较完整的整理一下。1.ID4.X的网络架构网络架构是整车各控制器之间的交互桥梁,跟道路有一样,有高速,城区环路,国道,乡道,丰富的很,大众ID4.X的网络架构如下图所示,各个控制器之间的交互通道一目了然。▲图1 大众ID4.X的网络架构 其网络架构中共使用了13个子网络:CAN-FD EV :主要连接DC/DC、BMC、AC充电机等,速率为2M/s;蓄电池CAN:用于连接电池管理单元BMC与从板CMC,速率为500k/s;MFL-CAN:用于ICAS1与电动转向之间的连接
发表于 2023-01-12
一文解析大众ID<font color='red'>4</font>.X的网络架构及各类控制器
STM32F4 新建标准库函数工程
前言在 STM32 开发中,库函数开发相比寄存器方式具有开发周期短、代码可读性好、便于移植等优点,而使用 Keil 环境的第一步就是新建工程。本文以 STM32F401CE 芯片为例,介绍使用标准库函数新建工程的步骤。材料准备STM32F4xx 固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0.rarKeil-MDK一点耐心新建库函数工程注意事项不同芯片在新建工程时的配置略有区别,主要体现在以下几点:工程目标 Device 选择的芯片型号不同。添加的启动文件不同。要根据芯片型号在arm目录下选择相应的.s文件。C/C++ 选项卡的芯片型号宏定义不同。具体有哪些选择可在stm32f4xx.h头文件中的条件编
发表于 2023-01-12
兼顾高性能与性价比,赛恩领动发布高性能成像雷达SIR-4K
1月10日,赛恩领动发布首款S系列辅助驾驶高性能成像雷达产品——SIR-4K。历经一年研发,这款用于辅助驾驶感知的成像雷达,可以为众多主机厂提供一套兼顾高性能与性价比的解决方案。赛恩领动是一家专注于辅助驾驶传感器的上海公司,成立于2021年11月,整个团队大多是由Tier 1供应商(如博世、大陆等)工程师组成,专注于技术领域开发。成像雷达是基于毫米波雷达原理所打造,具有更远探测距离、更高探测精度、更准确探测能力等优点。赛恩领动S系列成像雷达的首款产品——SIR-4K,定位于L3-L5级自动驾驶与无人驾驶感知场景,具备4芯片共192通道,4096点云输出,工作频段为76-79Hz,最远探测距离400m。相比毫米波雷达,SIR-4K不仅
发表于 2023-01-11
兼顾高性能与性价比,赛恩领动发布高性能成像雷达SIR-<font color='red'>4</font>K
泰矽微电子4款产品再获车规认证!
继车规级双模智能表面单芯片SOC TCAE11 和TCAE31 之后,上海泰矽微又有4款产品于近期通过AEC-Q100 可靠性验证,这四款产品分别为用于多种传感器的高集成度信号链SoC TCA025 和通用MCU 产品TC01E,以及4通道和6通道IO 缓冲器TCIB04 和TCIB06。随着汽车智能化和电动化发展,用于汽车的传感器类型和数量都有显著增加,上海泰矽微MCU+家族新成员车规级信号链MCU产品TCA025就是响应市场这一趋势开发的一款多功能高集成度单芯片方案。TCA025 集成ARM Cortex M0 低功耗内核,片上除了集成64 KB eFlash 和8KB SRAM, 以及标准的SPI, UART, I2C, LI
发表于 2023-01-11
泰矽微电子<font color='red'>4</font>款产品再获车规认证!

推荐帖子

工控工程师群70677754——交流开发经验,解决工程难题,寻找合作机会,非专业人士勿入。
工控设计群——70677754,非高手莫进,加入请写明水平及方向。 本群以交流开发经验,解决工程难题,寻找合作机会为目标。 欢迎热爱工控事业的工程师们入群 51,ARM,DSP Keilc,Proteus. Linux.RTOS.网络 机器视觉 运动控制工控工程师群70677754——交流开发经验,解决工程难题,寻找合作机会,非专业人士勿入。
yang_0799 嵌入式系统
磁性组件部分笔记
NOTE:以上2-5项可由实测变压器最大工作电压,来判定MarginTape实际最小宽度。磁性组件部分笔记
czf0408 LED专区
有能进行多路输出的控制芯片吗(大概5-6路)
现在做一个系统,需要多种电压,但苦于找不到合适的芯片,系统是5v和锂电池供电的,有了解的给说一下了,谢谢了 有能进行多路输出的控制芯片吗(大概5-6路)
liuzhiying666 电源技术
微波组件的制造技术
摘要:介绍了用于相控阵雷达的微波组件,论述微波组件在相控阵雷达中的地位及应用,阐述了微波组件制造技术的重要性\"并提出了在加工!组装!调试等过程中的一些关键技术和采取的有效方法\"微波组件的制造技术
JasonYoo 嵌入式系统
关于CPLD分频后波形问题
我是CPLD的初学者最近在做分频试验用EPM240的最小系统板外接50M的晶振产生10M和5M的信号用示波器测得的波形有点类似于正弦波产生500K的信号波形就是方波不过上边沿有点毛刺仿真的时候没什么问题实在是不懂问题出在哪里求大师指点关于CPLD分频后波形问题
363758470 FPGA/CPLD
【ST NUCLEO-U575ZI-Q 测评 】GPIOG端口点灯问题
本帖最后由qinyunti于2022-12-1513:47编辑 有网友在问为什么PG2点不亮,这是介绍下,因为PG2使用VDDIO2需要单独配置其VDDIO2电源.需要先使能VDDIO2,注意在PWR配置前需要先使能PWR时钟。LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_PWR);HAL_PWREx_EnableVddIO2();HAL_PWREx_ConfigSupply(PWR_SMPS_SUPPLY);先要PW
qinyunti stm32/stm8
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved