ATMEL9200内核移植开发文档.docx

上传人:b****5 文档编号:2866866 上传时间:2022-11-16 格式:DOCX 页数:26 大小:417.12KB
下载 相关 举报
ATMEL9200内核移植开发文档.docx_第1页
第1页 / 共26页
ATMEL9200内核移植开发文档.docx_第2页
第2页 / 共26页
ATMEL9200内核移植开发文档.docx_第3页
第3页 / 共26页
ATMEL9200内核移植开发文档.docx_第4页
第4页 / 共26页
ATMEL9200内核移植开发文档.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

ATMEL9200内核移植开发文档.docx

《ATMEL9200内核移植开发文档.docx》由会员分享,可在线阅读,更多相关《ATMEL9200内核移植开发文档.docx(26页珍藏版)》请在冰豆网上搜索。

ATMEL9200内核移植开发文档.docx

ATMEL9200内核移植开发文档

内核移植开发文档

1.内核版本

平台从cirrus9307芯片转移到atmelAT91RM9200后,嵌入式系统linux版本也从原来的2.6.8过渡到2.6.16。

2.6.16版本是完全重新移植,后来由于串口驱动DMA工作方式的原因,从原来的2.6.16,过渡到2.6.21,因为2.6.21的串口驱动支持DMA功能,还有很多其它新增功能。

2.内核的配置

在内核源代码所在根目录下键入:

makemenuconfig命令后回车,出现下图所示的文本配置界面。

2.6.21版本linux内核配置项共有19个大类,如下:

Codematurityleveloptions--->

Generalsetup--->

Loadablemodulesupport--->

Blocklayer--->

SystemType--->

Bussupport--->

KernelFeatures--->

Bootoptions--->

Floatingpointemulation--->

Userspacebinaryformats--->

Powermanagementoptions--->

Networking--->

DeviceDrivers--->

Filesystems--->

Profilingsupport--->

Kernelhacking--->

Securityoptions--->

Cryptographicoptions--->

Libraryroutines--->

Codematurityleveloptions

[*]Promptfordevelopmentand/orincompletecode/drivers(必选,软件成熟度选项,编译内核时提示开发与未完成代码位置)

Generalsetup

系统相关的一些配置,如支持ramdisk;makemenuconfig的配置保存到.config文件中。

[*]Automaticallyappendversioninformationtotheversionstring(编译时,自动将版本信息附加到版本字符串中)

[*]SystemVIPC(systemV版本第进程间通信协议)

<*>Kernel.configsupport(内核配置信息保存到.config文件中)

[*]Createdeprecatedsysfsfiles(自动备份旧版本内核配置信息)

[*]InitialRAMfilesystemandRAMdisk(initramfs/initrd)support(支持ramdisk机制)

[*]Optimizeforsize(Lookoutforbrokencompilers!

)(对编译链接生成对uImage的大小进行优化)

Loadablemodulesupport

内核模式驱动,要么集成到linux内核uImage中,或者以ko文件的形式存在,ko形式的驱动,本质就是module,使用之前需要insertmodule。

对于嵌入式的linux系统,为了缩小体积,可以将内核的装载,卸载module功能去掉,“Loadablemodulesupport”配置就是实现这个功能。

内核支持“Enableloadablemodulesupport”还不够,ramdisk必须提供insmod等相关命令。

Blocklayer

块设备,单个大文件的相关支持。

 

SystemType

系统配置,即目标板芯片相关配置,如MCU,dataflash,时钟的支持。

所有的内核源代码编译之前必须设置好这些选项。

ARMsystemtype(AtmelAT91)(我们用的AT91系列芯片)

[*]SupportARM920Tprocessor(ARM9核的类型)

 

Bussupport

PC卡,CF卡等总线的支持配置。

我们3G监控的系统可以不用选。

 

KernelFeatures

内核扩展特点的支持,升级的功能但是不稳定,放入这个大类中。

如内核支持板上LED,64位总线存储接口。

Bootoptions

配置Uboot所在的基地址,配置uboot引导uImage时传入参数没有设置的情况下使用的缺省传入参数。

一般不需要设置,在uboot中指定好传入参数即可。

 

Floatingpointemulation

因为ARM没有浮点数计算器,必须用软件来模拟,软件模拟浮点运算有不同的算法,用这个配置指定其中一种软件浮点运算。

[*]NWFPEmathemulation(采用NWFPE数学库进行软件浮点计算)

Userspacebinaryformats

用户空间支持的二进制格式,即嵌入式linux运行环境下支持的可执行二进制格式。

我们选的是通用的elf文件,ECOFF一般用于ARM7的环境中。

Powermanagementoptions

类似windows系统中的电源管理,我们没有用到。

 

Networking

网络支持配置,包括有线IP网络和无线网络。

Tftp,ping等网络程序的正确运行,必须配置好其中的“TCP/IPnetworking”部分:

DeviceDrivers

GenericDriverOptions--->

驱动编译时的环境设置

Connector-unifieduserspace<->kernelspacelinker--->

内核空间与用户空间的一个连接器驱动

MemoryTechnologyDevices(MTD)--->

MTD驱动支持,NAND,NORflash驱动,MTD分区支持在这里配置

Parallelportsupport--->

并口驱动支持

PlugandPlaysupport--->

设备pnp性能支持

Blockdevices--->

块设备驱动支持,包括ramdisk驱动设置

ATA/ATAPI/MFM/RLLsupport--->

老硬盘的ATA驱动支持

SCSIdevicesupport--->

SCSI驱动支持,注意如果板子上要插U盘,其中的“SCSIdisksupport”项必须选上。

SerialATA(prod)andParallelATA(experimental)drivers--->

串行ATA,与并行ATA驱动支持

Multi-devicesupport(RAIDandLVM)--->

RAID驱动支持

FusionMPTdevicesupport--->

“FusionMPT”设备驱动的支持

IEEE1394(FireWire)support--->

火线1394驱动支持

I2Odevicesupport--->

IO设备驱动支持

Networkdevicesupport--->

网络设备驱动支持,包括一些虚拟协议驱动,如网卡EMAC驱动,PHY芯片驱动,PPP驱动等等。

ISDNsubsystem--->

ISDN设备驱动支持

Inputdevicesupport--->

输入设备驱动支持,包括键盘,鼠标,游戏手柄,触摸屏等等。

Characterdevices--->

字符设备驱动的支持,包括看门狗驱动,console驱动等。

I2Csupport--->

硬I2C控制器的驱动支持,我们都是用软件模拟的I2C接口没有使用硬SPI控制器

SPIsupport--->

硬SPI控制器的驱动支持,我们都是用软件模拟的SPI接口没有使用硬SPI控制器

Dallas's1-wirebus--->

“Dallas's1-wire”驱动支持

HardwareMonitoringsupport--->

硬件监控芯片支持

Miscdevices--->

空,更高版本中可能用到。

Multifunctiondevicedrivers--->

多功能设备驱动支持,即一些手持终端的驱动支持

LEDdevices--->

板上LED驱动支持

Multimediadevices--->

多媒体视频方面驱动支持,视频编解码的支持,需要这些驱动才能播放视频格式文件。

Graphicssupport--->

图形驱动支持,如LCD,VGA控制器驱动

Sound--->

音频芯片驱动支持

HIDDevices--->

鼠标键盘驱动支持

USBsupport--->

USB驱动支持,包括host和device驱动

MMC/SDCardsupport--->

MMC/SD卡驱动支持

RealTimeClock--->

实时时钟驱动支持

 

Filesystems

文件系统的配置,即linux下支持的文件格式系统,如EXT2,EXT3,JFFS2。

类似windows下的FAT32,NTFS文件系统的选择,不同的是linux同时可以支持多种文件系统,windows一个分区只能支持一种。

任意一个普通文件与相应的文件系统相对应,在linux系统中要浏览该文件,必须配置有相应文件系统。

如果要用U盘,必须将“VFAT(Windows-95)fssupport”项选上。

Kernelhacking

内核调试用的一些配置,对于直接修改内核源代码的情况,这些配置比较有用。

Securityoptions

网络传输中的安全配置和密钥配置。

Cryptographicoptions

加密相关的函数库配置,如MD4,MD5的库函数。

 

Libraryroutines

其它一些函数库的配置,包括“CRC-CCITTfunctions”,后面新版本将会有更多选项。

3.内核编译说明

首先将源代码根目录下Makefile中的“CROSS_COMPILE”变量修改为:

CROSS_COMPILE?

=/home/usr/crosstc/arm-linux-gcc-3.4.3/bin/arm-linux-

然后运行命令:

makeuImage,即可将内核源代码编译生成需要的uImage文件。

4.内核源代码修改

下载到源代码以后,要将内核在我们的监控盘上正常运行,必须进行必要的修改,以适应监控盘硬件。

修改包括:

晶体频率,网口驱动相关,串口驱动,MTD驱动。

晶体频率

为了利用公司现有库存晶体,同时保证分频倍频后得到的MCU工作频率精确,监控盘采用了12M晶体。

下载的内核源代码是根据ATMEL原厂评估板上的18.432M晶体设置,因此需要修改源代码中相应部分,此为移植的第一步。

具体步骤是修改源代码中文件:

linux-2.6.21\arch\arm\mach-at91\board-dk.c,该文件有一个函数dk_map_io,定义如下:

staticvo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1