minis3c2440移植之内核移植

发布者:科技思想家最新更新时间:2015-11-18 来源: eefocus关键字:移植  内核移植 手机看文章 扫描二维码
随时随地手机看文章
说在前头:一般是基于支持s 3c2440的内核文件作相应的修改以适应自己的需求,如果单是纯粹的修改不支持s3c2440的内核文件或者自己写s3c2440的内核文件将会非常费时费事,也是一个人在短时间难以完成的工作。下面的修改也就是最基本的内核文件所必须的步骤,也就是我们所做的工作就是一个最小文件系统(最小文件系统:能是能使整个系统跑起来的系统软件和硬件)。一般的编程思路也是首先实现一个最基本的功能,再此基础上添加其他的功能,切忌一次性的写完全部的代码,然后已编译出现了一大堆错误,那可就真的挂了。
一、将linux-2.6.18.tar内核源代码的压缩包拷贝到linux的根目录下进行解压,然后进入linux-2.6.18的目录下修改配置文件。
二、修改Makefile配置文件
1、第176行  改为ARCH    ?=arm  
   因为这是arm体系的,会生成arm目录。
2、第177行  改为CROSS_COMPILE  ?=arm-linux-
   因为这是交叉编译的需要,缺省的是gcc,但是在arm板子上的编译环境和linux不一样,应该是arm-linux-gcc便已命令。
三、在linux-2.6.18的目录下打开终端执行                       cp arch/arm/configs/smdk2410_deconfig .config实际上这条操作是将smdk2410_deconfig重命名为.config,因为对配置文件的操作都会自动保存到当前目录下并且命名为.config
四、打开终端在linux-2.6.18的目录下执行make menuconfig的操作,修改内核配置文件(说明:括号前面加*表示选中该选项)
1、System Type  ---> ARM system type (Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2---> 修改为(X) Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442(这是系统类型,改为s3c2440的支持)。
2、System Type  --->S3C24XX Implementations--->选中为
[*] SMDK2440和[*]   SMDK2440 with S3C2440 CPU module,与此同时去掉SMDK2410/A9M2410前面的“*”
3、Floating point emulation  --->分别选中[*] NWFPE math emulation                                       和[*]   Support extended precision这是浮点运算方式,在启动Shell终端的时候用到。
4、Device Drivers  --->Memory Technology Devices (MTD)  --->分别选中[*] Memory Technology Device (MTD) support和[*]   MTD partitioning support,选中它们就可以对flash做分区了。
5、Device Drivers  ---> Memory Technology Devices (MTD)  ---> NAND Flash Device Drivers  --->分别选中[*] NAND Device Support和[*] NAND Flash support for S3C2410/S3C2440 SoC和[*]   S3C2410 NAND driver debug,作用是支持s3c2440的nand flash。
6、Device Drivers  ---> Block devices  --->分别选中[*] Loopback device support和[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support,然后修改为(65535) Default RAM disk size (kbytes),动态内存的大小。
7、Device Drivers  ---> Network device support  ---> Ethernet (10 or 100Mbit)  --- >选中[*] DM9000 support这是板子上网卡的型号。
8、Device Drivers  --->Character devices  ---> Serial drivers  --->确认以下两个选项都被选中(它们都是对串口的支持,缺省选中)
[*] Samsung S3C2410/S3C2440/S3C2442/S3C2412 Serial port support        
[*]   Support for console on S3C2410 serial port
9、File systems  --->分被选中一下的选项,它们是对外部引脚的支持:[*]   Ext2 extended attributes
[*]   Ext2 execute in place support
[*]   Ext3 journalling file system support                           
[*]   Ext3 extended attributes   
10、File systems--->Network File Systems  --->去掉这两个选项[ ] NFS server support和[ ]Root file system on NFS
11、File systems--->Miscellaneous filesystems--->选中文件系统类型[*] Compressed ROM file system support (cramfs),烧录的时候的文件系统为root. Cramfs。
12、File systems---> Pseudo filesystems  ---> 选中虚拟文件系统       [*] Virtual memory file system support (former shm fs)。
五、在linux-2.6.18的目录flash分区等配置文件的修改:

1、在arch/arm/mach-s3c2410/目录下的common-smdk2440.c中第194行中将修改为s3c24xx_init_clocks(12000000);//初始化实时时钟的时间
2、在arch/arm/mach-s3c2410/目录下的common-smdk.c修改flash分区为:
static struct mtd_partition smdk_default_nand_part[] = {
   [0] = {
      .name = "u-boot",//flash 的第一快分区名称,在此位置烧录u-boot
      .size = 0x60000,  //第一快分区的大小
      .offset  = 0,     //偏移地址是0
   },
   [1] = {
      .name = "kernel", //flash 的第二快分区名称,在次烧录内核
      .size = 0x300000, //第二快分区的大小,必须大于内核代码的大小
      .offset = 0x80000, //偏移地址
   },
   [2] = {
      .name="file system",//flash 的第三快分区名称,在次烧录文件系统
      .size=0x2000000,//第三快分区的大小,必须大于文件系统代码的大小
      .offset=0xa00000,  //偏移地址
   }
};
六、编译内核生成uImage
1、在linux-2.6.18下make clean;
2、然后将u-boot-2009.08/tools下的mkimage拷贝到/bin目录下,因为uImage由二进制文件zImage生成,而此时/bin下没有整个二进制命令。
3、然后再在linux-2.6.18下make uImage,编译通过之后就会在linux-2.6.18/arch/arm/boot下生成二进制文件uImage。
关键字:移植  内核移植 引用地址:minis3c2440移植之内核移植

上一篇:minis3c2440移植之文件系统移植
下一篇:Bootloader/u-boot的启动模式

推荐阅读最新更新时间:2024-03-16 14:40

ucos-ii移植到ARM上的一个简单例子mini2440
基于mini2440的一个简单移植程序led.c #include config.h #define LED1 (0 5) //定义LED,GPB5 #define TaskStkLength 64 //定义堆栈长度 OS_STK TaskLEDStk ; //定义任务LED的堆栈 void TaskLED(void *pdata); //声明任务LED int Main(void) //ADS中不能写成main(void),一定大写 { TargetInit(); //目标板初始化 OSInit(); //uC/OS-II初始化 OSTimeSet(
[单片机]
基于PXA255的ARM Linux操作系统移植
1. 引言 ARM处理器是当今应用最为广泛的处理器芯片,它功耗小、成本低、性能优越,在消费电子类产品中占据主导地位。Linux操作系统近年来在嵌入式领域中发展很快,由于其强大的性能和开源免费的特点,越来越受到嵌入式系统开发商的青睐,信息家电、网络设备、手持终端等都是嵌入式Linux应用的广大市场。 在嵌入式开发中,把操作系统移植到开发板是进行嵌入式应用开发的前提和基础。ARM Linux是针对ARM体系结构的嵌入式Linux操作系统。本文主要阐述了将ARM Linux系统移植到基于PXA255处理器的开发板CSB226上的方法和关键技术。 2.     软硬件平台环境 2.1.   硬件平台 (1)PXA255处理器
[嵌入式]
创建并移植K10 BSP包的具体步骤和方法(三)
while((MCG_S & MCG_S_IREFST_MASK) != 0x00U) {   /* 判断FLL参考源是否为外部参考时钟 */   }   while((MCG_S & 0x0CU) != 0x08U) { //等待,直到外部参考时钟作为MCG的输出   }   /* 切换到 PBE 模式*/   OSC_CR = OSC_CR_ERCLKEN_MASK;   SIM_SOPT2 &= (uint32_t)~(uint32_t)(SIM_SOPT2_MCGCLKSEL_MASK);   MCG_C1 = (MCG_C1_CLKS(0x02) | MCG_C1_FRDIV(0x05) | MCG_C1
[模拟电子]
创建并<font color='red'>移植</font>K10 BSP包的具体步骤和方法(三)
STM32原有的MDK工程下移植到GCC环境
1. 增加 STM32F429IGTx_FLASH.ld 这个文件存放芯片内存信息 STM32F429IGTx_FLASH.ld主要存放的是芯片内存的信息,堆栈大小,RAM,Flash大小, MEMORY{ }中存放的内存段,程序中有使用明确内存的地址的地方要在这里定义。 /* Entry Point */ ENTRY(Reset_Handler) /* Highest address of the user mode stack */ _estack = 0x20020000; /* end of RAM */ /* Generate a link error if heap and stack don&
[单片机]
U-Boot移植(19)新移植到ylp2410上u-boot的功能
新u-boot-1.1.6-new的功能: 1、同时支持S3C2410和S3C2440 2、支持串口xmodem协议 3、支持USB下载,可以在PC上使用dnw传数据 4、支持网卡芯片dm9000aep 5、支持NAND Flash读写 6、支持从Nor/Nand Flash启动 7、支持烧写yaffs文件系统映象 8、可以直接下载到内存运行 9、支持CFI、Jedec接口的Nor Flash 10、把环境参数保存在nand flash中 11、u-boot把分区设为: define MTDPARTS_DEFAULT mtdparts=nandflash0:256k@0(bootloader), 12
[单片机]
linux-3.0内核移植到fl2440开发板(以s3c2410为模板)
1.新建kernel文件夹,用于存放内核文件 $ mkdir kernel 2.进入kernel,上传压并解压压缩文件 $cd kernel $ tar -xjf linux-3.0.tar.bz2 3.进入linux-3.0 cd linux-3.0 4.修改makefile,配置CPU类型和交叉编译器(195,196行) ARCH ?=arm CROSS_COMPILE ?=/opt/buildroot-2012.08/arm926t/usr/bin/arm-linux- 交叉编译器路径每个人不太一样,大家把路径都换成自己的,另外在配置交叉编译器路径的时候,不要多加多余的空格,否则编译器不会被找到。 在同一
[单片机]
stm32mp157教程案例 STM32MP157移植LVGL
1 简介 LVGL(Light and Versatile Embedded Graphics Library)是一个免费开源的嵌入式图形库,界面美观, 内存占用低, 支持C和Python等开发方式。早在几年前它就表现得十分惊艳,现如今被越来越多的人喜爱。笔者之前是使用6版本在单片机上面运行,如今都已经更新到7版本多了,人往高处走,终究得跟上最新版本,于是便有了关于LVGL7版本在linux上移植的这件篇笔记。 本次教程使用的开发板是万象奥科的HD-STM32MP157-STY开发板。该开发板使用STM32MP1家族中是目前性能强劲,资源最为丰富的一款处理器STM32MP157DAA,双核ARM Cortex-A7 @800M
[单片机]
stm32mp157教程案例 STM32MP157<font color='red'>移植</font>LVGL
mini2440 u-boot-2009.03 移植最详细攻略
1 支持S3C2440,S3C2410未知; 2 NAND flash支持,包括读写NAND flash,从NAND flash启动,saveenv 在NAND flash; 3 支持tftp的使用,也就支持DM9000网卡,8900CS未知; 4 支持yaffs映像的烧写,该版本已经支持yaffs2的文件系统,在fs目录下已经有yaffs2目录; 5 支持串口xmodem协议。 第0阶段:建立自己的开发板配置文件 1 打开u-boot主目录下的makefile,找到smdk2410_config,在其下,仿照它的格式加入如下语句: smdk2440_config : unconfig @$(MKCONFIG) $
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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