ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:212.63KB ,
资源ID:6984079      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6984079.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(DM6446-linux-2.6.18移植.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

DM6446-linux-2.6.18移植.docx

1、Davinci DM6446开发攻略——linux-2.6.18移植 TI DAVINCI 使用最新的内核是montavista linux-2.6.18,之前说过,国内很多公司,包括开发板的软件包,一直在使用montavista linux-2.6.10,这个版本准确来说是比较低的,实时性肯定没2.6.18好(MontaVista Linux Professional Edition 5.0以linux-2.6.18为基础,打破了Linux不适用于实时和嵌入式应用的迷思);使用devfs,没有使用udev;对DM365等新出的DAVINCI芯片支持限度很小;ucLibc支持(减少75%应用

2、程序资源需求);IPv6(增加更多Internet Protocol version 6 (IPv6)支持,提供比旧版产品更优异的效能、安全和管理功能);等等,这些优点不得不让人心动。   第一步:简化linux-2.6.18 如果你已经安装好TI mvl_5_0_0_demo_lsp_setuplinux_02_00_00_140.bin,先在你的工作目录下建立linux-2.6.18_pro500的目录,进入改目录,比如/home/\ dm6446/linux-2.6.18_pro500/,COPY内核源代码到本目录下,命令如下: cp –r /opt/m

3、v_pro_5.0.0/montavista\pro/devkit/lsp/ti-davinci/linux-2.6.18_pro500/* . (注意”*” ”.”之间的空格) 和UBOOT移植一样,我们先把一些不相关的平台给删除掉,进入arch目录,保留arm目录,其他全部删除掉。 进入linux-2.6.18_pro500/arch/arm/,保留boot,common,configs,kernel,lib,mach-davinci,mm,nwfpe,oprofile,plat-mxc,plat-omap,tools,vfp和其他4个文件Kconfig,Makefile, Kcon

4、fig-nommu, Kconfig.debug,其他有关mach-xxxx的全部删除掉。   删除include下不相关平台的文件夹:asm-alpha,asm-arm26,asm-cris,asm-frv,asm-h8300,asm-i386,asm-ia64,asm-m32r,asm-m68k,asm-m68knommu,asm-mips,asm-parisc,asm-powerpc,asm-ppc,asm-ppc64,asm-s390,asm-sh,asm-sh64,asm-sparc,asm-sparc64,asm-um,asm-v850,asm-x86_64,asm-xtens

5、a全部删除掉,其他就不用删了,否则出问题。   第二步:建立交叉编译环境       进行下面工作之前,确保你的GCC已经按《DAVINCI DM6446开发攻略——环境搭建篇》建立好。 1、  顶层Makefile修改: 在172行,即# make CROSS_COMPILE=ia64-linux-下面,加入: ARCH = arm   CROSS_COMPILE = arm_v5t_le- 把下面:ARCH := $(shell if [ -f .mvl_target_cpu ]; then \                cat .mvl_target_cpu; \

6、         else \                echo $(SUBARCH); \         fi) CROSS_COMPILE   = $(shell if [ -f .mvl_cross_compile ]; then \                          cat .mvl_cross_compile; \                  fi) 全部注释掉; 2、  COPY UBOOT 的mkimage工具 从编译好的UBOOT里tool目录下的mkimage工具COPY到linux-2.6.18_pro500目录以下, 3、

7、  添加mkzImage.sh 使用vi生成mkzImage.sh,把以下内容加入文件:     #!/bin/sh   ./mkimage -n 'linux-2.6.18' -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008040 -d zImage davinci_kernel.bin chmod 777 davinci_kernel.bin cp -f davinci_kernel.bin /tftpboot   保存在linux-2.6.18_pro500/目录下,配合mkimage,方便把zImage

8、转换成davinci_kernel.bin,这样UBOOT才能把linux kernel给BOOT起来; 4、  修改arch/arm/boot/Makefile: 在57行下面加入: @cp -f arch/arm/boot/zImage zImage 这样每次编译zImage,生成的zImage可以自动COPY到linux-2.6.18_pro500目录下。 5、  修改fs/hostfs/Makefile    因为删除um和asm-um,当使用make distclean操作的时候会出现问题,所以把: include arch/um/scripts/Makefile.ru

9、les注释掉。 6、  修改arch/arm/Kconfig 因为删除其他不相关的平台的文件夹,所以Kconfig也把这些平台给注释掉: 从135行开始一直到343行 #config ARCH_AAEC2000 #      bool "Agilent AAEC-2000 based" #      select ARM_AMBA #      help #        This enables support for systems based on the Agilent AAEC-2000 。。。。。。。。。。。。。。。。。。。 #config ARCH_OMAP

10、 #      bool "TI OMAP" #      help #        Support for TI's OMAP platform (OMAP1 and OMAP2). 以上全部注释掉。 从第355行开始到399行,全部注释掉: #source "arch/arm/mach-clps711x/Kconfig"   #source "arch/arm/mach-ep93xx/Kconfig"   。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。   #source "arch/arm/mach-netx/Kconfig"   第三步:内核移

11、植裁减   1、  在linux-2.6.18_pro500目录下,使用以下命令开始配置内核: cp arch/arm/configs/ davinci_dm644x_defconfig .config make menuconfig 进入熟悉的kernel配置界面:   2、  去掉ATA DRIVER 由于本人的开发板没有NOR FLASH,也没有ATA硬盘之类的东西,这一点和TI EVM板不一样,所以我们先把设备驱动里的ATA选项去掉。 然后保存配置退出,使用 Make zImage 编译完后,运行./mkzImage.sh,可以COPY生成的bin文件到/

12、tftpboot目录下,参照上篇有关uboot的帖子,使板子把uboot运行起来,使用进入UBOOT命令行: U-Boot >tftp 80008000 davinci_kernel.bin U-Boot >bootm 80008000 之后可以在串口终端看到内核的运行信息。 3、  修改arch/arm/mach-davinc/board-evm.c 有关dm644x的平台信息就在board-evm.c里,包括nand flash 分区配置,管脚复用配置,psc初始化等等。 在74行,把有关nor flash的代码全部注释掉,在 static struct platform_d

13、evice *davinci_evm_devices[] __initdata = { &serial_device, #if defined(CONFIG_MTD) || defined(CONFIG_MTD_MODULE) //&davinci_evm_flash_device, #endif #if defined(CONFIG_MTD_NAND_DAVINCI) || defined(CONFIG_MTD_NAND_DAVINCI_MODULE) &davinci_nand_device, #endif &rtc_dev, &davinci_fb_device, #

14、if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \     defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE) &davinci_ide_device, #endif #if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE) &mmc0_device, #endif }; 把nor flash的设备驱动注释掉; 对nand flash进行分区,这个要和UBOOT烧写UBOOT KERNEL ROOTFS等烧写的

15、地址一一对应; static struct mtd_partition davinci_nand_partitions[] = { /* bootloader (U-Boot, etc) in first sector */ /*Mtdblock0*/ {         .name             = "bootloader",         .offset            = 0,         .size        = SZ_1M+SZ_512K,         .mask_flags    = 0, /* force read-only */ }

16、   /* bootloader params in the next sector */   /*Mtdblock1*/ {         .name             = "dspcore",         .offset            = SZ_1M+SZ_512K,         .size        = (SZ_8M-SZ_2M-SZ_512K),         .mask_flags    = 0, /* force read-only */ }, (这里注明一下:mtdblock1源代码被定义为128K参数,但是在UBOOT里,我们把

17、参数放在0x0000开始的地址,这里可以保留该分区,也可以不要。本人定义成DSP BIN文件存放的地方,有种调试方式可以不用KERNEL就可以在UBOOT把DSP BOOT起来,双核并行运行嘛。这个分区在本人这里是拿来测试DSP程序,一般不建议使用UBOOT方式把DSP给BOOT起来。这个DSP BIN就是通过HEX64工具生成的,这和DM642、DM6437的BIN文件完全一样。具体说,把DSP程序运行起来常用有四种方法,一是硬件BOOT方式选择DSP BOOT,二是通过UBOOT把BIN启动起来,三是通过内核把BIN启动起来,四是DSP SERVER方式,即*.x64P,就是最常用的Cod

18、ec Engine机制。第三种方式也有很多公司在用,然后通过共享内存方式、中断等实现双核通信。) /* kernel */  /*Mtdblock2*/ {         .name             = "kernel",         .offset            = (SZ_8M-SZ_1M),         .size        = SZ_4M+SZ_1M,        .mask_flags    = 0, }, /* file system */  /*Mtdblock3*/ {         .name             =

19、"rootfs",         .offset            = (SZ_8M+SZ_4M),         .size        = SZ_64M,         .mask_flags    = 0, }, /* data */    /*Mtdblock4*/ 这个可以保存一些备份数据,一可以不用定义 {         .name             = "data",         .offset    = (SZ_64M+SZ_8M+SZ_4M),         .size        = (SZ_128M-(SZ_64M+SZ_8M

20、SZ_4M)),         .mask_flags = MTD_WRITEABLE, } }; 以上是NAND 分区信息,针对各自板子不同大小的NAND FLASH,合理分配空间。 #if 1 static struct platform_device rtc_dev = { .name            = "pcf8563", .id          = -1, }; #else static struct platform_device rtc_dev = { .name             = "rtc_davinci_evm", .id  

21、        = -1, }; #endif 以上的代码修改,表示板子采用pcf8563 时钟芯片作为RTC设备,本人的板子不采用TI-EVM的电路,所以要修改这里,同时在drivers/rtc目录下,修改rtc-pcf8563.c的一个BUG,就是: static unsigned short normal_i2c[] = { 0x51, I2C_CLIENT_END }; 一定要加0x51地址,否则内核运行时,无法注册pcf8563的驱动,会出现RTC错误信息,很多网友都碰都过这个问题。改完后,make menuconfig要选上pcf8563的驱动。   在static

22、void dm644x_setup_pinmux(unsigned int id)里,把有关FPGA接口的管脚复用功能去掉,因为很多中低端DM6446产品都没有接FPGA芯片。这样我们可以把这些引脚定义成SPI核UART接口。 #if 0 case DAVINCI_LPSC_VLYNQ:         davinci_cfg_reg(DM644X_VLINQEN);         davinci_cfg_reg(DM644X_VLINQWD);         break; #endif 同时在arch/arm/mach-davinci/mux_cfg.c里 struct

23、pin_config __initdata_or_module davinci_dm644x_pins[] = { /*  *     description           mux  mode   mode  mux  dbg  *                          reg  offset mask  mode  */ #if 1  //ATA功能不用 MUX_CFG("HDIREN",        0,   16,    1,      0, 1) MUX_CFG("ATAEN",          0,   17,    1,      0, 1)

24、else MUX_CFG("HDIREN",        0,   16,    1,      1, 1) MUX_CFG("ATAEN",          0,   17,    1,      1, 1) #endif MUX_CFG("MSTK",                   1,   9,     1,      0, 0) MUX_CFG("I2C",                1,   7,     1,      1, 0) MUX_CFG("MCBSP",          1,   10,    1,      1, 0) MUX_CFG("

25、PWM0",                  1,   4,     1,      1, 0) MUX_CFG("PWM1",                  1,   5,     1,      1, 0) MUX_CFG("PWM2",                  1,   6,     1,      1, 0) #if 0 MUX_CFG("VLINQEN",             0,   15,    1,      1, 0) MUX_CFG("VLINQWD",            0,   12,    3,      3, 0) #endif

26、 MUX_CFG("EMACEN",              0,   31,    1,      1, 1) MUX_CFG("GPIO3V",         0,   31,    1,      0, 1) MUX_CFG("GPIO0",           0,   24,    1,      0, 1) MUX_CFG("GPIO3",           0,   25,    1,      0, 0) MUX_CFG("GPIO43_44",           1,   7,     1,      0, 0) MUX_CFG("GPIO46_47",  

27、         0,   22,    1,      0, 1) MUX_CFG("RGB666",         0,   22,    1,      1, 1) /*MUX_CFG("RGB888",             0,   23,       1,   1,  1)*/ /* for vpbe rgb888*/ MUX_CFG("LOEEN",          0,   24,    1,      1, 1) MUX_CFG("LFLDEN",        0,   25,    1,      1, 0) }; 4、  内核进一步配置 对内核进一步

28、配置之前,如果对linux-2.6.18很陌生,这里给出一个链接: 一个网友对 “Linux 2.6.19.x 内核编译配置“进行详细的描述,不妨去看一下。 使用cp arch/arm/configs/ davinci_dm644x_defconfig .config make menuconfig 进入内核配置界面,在这里,本人只对要修改的地方进行分析,其他设置,保留davinci_dm644x_defconfig。上面已经介绍有关去掉ATA和TI-EVM RTC设备,接着我们对文件系统进行裁减,如下图。图下半部没有显示,保留davinci_dm644x_defconfig就可以

29、了,一般不要修改。NFS文件系统的配置也用默认的,直接编译就可以了。 其他功能和驱动,建议保留默认配置。对于自己板子新的设备(和TI-EVM板差别很大),则要做更复杂的移植工作,包括相应目录的makefile和Kconfig文件的修改等,这里不再累赘。   第四步:保存备份修改后的配置   内核移植配置,一定要养成备份配置文件的良好习惯,一步一个脚印,防止做重复工作。幸好davinci_dm644x_defconfig给大家提供一个很好的参考,否则更加麻烦。直接从内核网站下载最新内核来移植,那是非常大的挑战,不是一般人为的。Linux-2.6.18也许有很多设备没有支持,但在较新的linux内核上有,这也可以把新的驱动移植下来,这个工作量也不小,当然也有简单的patch,那是后话。 按照上篇UBOOT的介绍,设置好参数,比如使用NFS: mem=120M console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=192.168.1.251:/home//nfs/tirootfs,nolock 测试内核和NFS文件系统。 以上工作已经通过本人的板子验证,有不足的地方,大家可以博客留言共同讨论。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服