当前位置:首页 > 单片机 > 单片机
[导读]安装交叉编译工具?下载交叉编译工具(本文默认所有软件均下载在用户主目录下)arm-linux-gcc-3.4.1 —— 交叉编译工具URL:ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2?安装 //将压缩包

安装交叉编译工具


?下载交叉编译工具

(本文默认所有软件均下载在用户主目录下)

arm-linux-gcc-3.4.1 —— 交叉编译工具

URL:ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

?安装

//将压缩包移动至根目录下

#mv arm-linux-gcc-3.4.1.tar.bz2 /

//解压,默认路径为 /usr/local/arm /3.4.1

#tar jxvf arm-linux-gcc-3.4.1.tar.gz2


下载Linux内核


?下载Linux 2.6.14内核

URL:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2

?解压内核

#cd ~

#tar jxvf linux-2.6.14.tar.bz2


建立环境变量


?将交叉编译工具路径和内核路径加入环境变量

#vi ~/.bashrc

export KERNEL=~/linux-2.6.14

export PATH=/usr/local/arm/3.4.1/bin:$PATH


内核移植


?为Flash进行分区

启动开发板,进入vivi,对vivi进行分区操作

vivi>bon part 0 128k 192k 2240k 5312k:m 64704k

分区信息如下所示:

分区

起始地址

分区大小

分区作用

Part0

0x0

0x00020000 (128k)

bootloader

Part1

0x00020000

0x00010000 (64k)

bootloader params

Part2

0x00030000

0x00200000 (2m)

linux kernel

Part3

0x00230000

0x00300000 (3m)

root filesystem

Part4

0x00530000

0x03A00000 (58m)

yaffs filesystem

将vivi写进Flash

vivi>load flash vivi x

?修改Makefile

#vi $KERNEL/Makefile

找到ARCH与CROSS_COMPILE,修改为

ARCH ?= arm

CROSS_COMPILE ?= arm-linux-

?将分区信息加入内核

#vi $KERNEL/arch/arm/mach-s3c2410/devs.c

添加头文件:

#include

#include

#include

添加分区结构:

static struct mtd_partition partition_info[]={

{

name: "loader", //分区名字,任意

size: 0x00020000, //分区大小

offset: 0x0, //分区的起始地址,相对于0x0的偏移

},{

name: "param",

size: 0x00010000,

offset: 0x00020000,

},{

name: "kernel",

size: 0x00200000,

offset: 0x00030000,

},{

name: "rootfs",

size: 0x00300000,

offset: 0x00230000,

},{

name: "yaffs",

size: 0x03A00000,

offset: 0x00530000,

}

};

struct s3c2410_nand_set nandset={

nr_partitions: 5, //分区数量

partitions: partition_info, //分区表

};

struct s3c2410_platform_nand superlpplatform={

//NAND Flash芯片支持

//参数意义可参考S3C2410手册

tacls: 0,

twrph0: 30,

twrph1: 0,

sets: &nandset,

nr_sets: 1,

};

修改s3c_device_nand,以加入NAND Flash驱动:

struct platform_device s3c_device_nand = {

.name = "s3c2410-nand", //设备名称

.id = -1,//有效设备编号,-1表示唯一设备

.num_resources = ARRAY_SIZE(s3c_nand_resource), //寄存器区的个数

.resource = s3c_nand_resource, //寄存器区的首地址

//添加如下信息,表示NAND Flash设备

.dev={

.platform_data=&superlpplatform

}

};

?指定启动时的设备初始化

#vi $KERNEL/arch/arm/mach-s3c2410/mach-smdk2410.c

修改:

static struct platform_device *smdk2410_devices[] __initdata = {

s3c_device_usb,

s3c_device_lcd,

s3c_device_wdt,

s3c_device_i2c,

s3c_device_i

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为了满足日益增长的数据处理需求,铁威马NAS推出了全新的性能巅峰2024年旗舰之作F4-424 Pro,并搭载了最新的操作系统--TOS 6。这款高效办公神器的问世,无疑将为企业和专业人士带来前所未有的便捷与效率。

关键字: 存储 Linux 服务器

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

安装Linux操作系统并不复杂,下面是一个大致的步骤指南,以帮助您完成安装。1. 下载Linux发行版:首先,您需要从Linux发行版官方网站下载最新的ISO镜像文件。

关键字: Linux 操作系统 ISO镜像

计算机是由一堆硬件组成的,为了有限的控制这些硬件资源,于是就有了操作系统的产生,操作系统是软件子系统的一部分,是硬件基础上的第一层软件。

关键字: Linux 操作系统 计算机

Linux操作系统是一套免费使用和自由传播的类Unix操作系统,通常被称为GNU/Linux。它是由林纳斯·托瓦兹在1991年首次发布的,并基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Lin...

关键字: Linux 操作系统

所谓进程间通信就是在不同进程之间传播或交换信息,它是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息;还可以让一个程序能够在同一时间里处理许多用户的需求。

关键字: Linux 进程通信 编程接口

串口通信作为一种最传统的通信方式,在工业自动化、通讯、控制等领域得到广泛使用。

关键字: Linux 串口通信 通讯

2023年11月16日: MikroElektronika(MIKROE) ,作为一家通过提供基于成熟标准的创新式硬软件产品来大幅缩短开发时间的嵌入式解决方案公司,今天宣布推出一款基于单线设备的软硬件开源解决方案Cli...

关键字: 嵌入式 Linux 操作系统

Linux是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布。它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CP...

关键字: Linux 操作系统

本文中,小编将对嵌入式予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 嵌入式 Linux
关闭
关闭