




kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
kok电子竞技:文档简介
kok电子竞技本:V1.0DM6467T开发环境使用指南嵌云阁主.9kok电子竞技本历史信息kok电子竞技本号时间作者修改主要原因1.0/9/13嵌云阁主文件创建目录DM6467T开发环境使用指南 11 简介 12 虚拟机使用 32.1 Vmware网络配置 32.2 将windows下的工作目录共享给Linux 32.3 Samba使用 42.4 Ssh服务使用 52.5 Tftp服务 52.6 Nfs服务 52.7 ftp服务 52.8 telnet服务 62.9 http服务 63 DVS6467T开发环境使用 73.1 DVSDK编译 73.2 Uboot编译 83.3 Linux内核编译 84 仿真器使用 94.1 用仿真器解决内核加载问题 95 在ccs7下进行DM6467的开发 135.1 测试工程 135.1.1 创建测试工程 135.1.2 GEL配置 145.1.3 启动dsp调试 155.2 实用的代码分析与编写 165.3 Linux内核编译 175.4 编译驱动模块 206 在ccs7下进行Linux应用程序的开发 236.1 Makefile应用程序 23介绍对于嵌入式开发而言,入门最大难度之一在于开发环境搭建。《DM6467开发环境V1.0》整合了TI公布DM6467T开发工具,将其整合到一个VMVare虚拟机中,同时使用CCS做为开发工具,将各种命令行繁琐隐藏到IDE背后。CCS是以Elipse为基础IDE,不但能够完成Linux内核及应用程序编译,还能够使用仿真器进行硬件调试,实现Linux内核及驱动调试,实现板载应用程序调试。对于用惯了VS开发同学来讲能够快速地切换到嵌入式Linux开发中来。《DM6467开发环境V1.0》是一个VMWareWorkStation12.0,64位虚拟机文件,但并不包含VMWareWorkStation12.0这个应用程序,此程序需要自行安装。虚拟机总大。16G,虚拟硬盘大。80G虚拟机中全部资源以下:操作系统Ubuntu16.04,64位,不考虑安全性配置。网络配置网卡130,仅用于与windows主机通信。网卡230/24,用于桥接到物理网络,用以和嵌入式设备进行通信。网卡3经过NAT连接到外部网络,用以在虚拟机里上网。系统服务Tftp服务根目录:/work/tftpboot/具备上传、下载权限Samba服务共享目录:/work共享帐号及密码:embed/embed,可读写Ssh服务telnet服务Nfs服务根目录:/work/nfsftp服务可经过帐号密码登录,也可匿名登录匿名ftp根目录:/work/ftp/http服务根目录:/var/www/html/可支持php7及mysql5vmtools可经过/mnt/hgfs访问windows主机内容其它防火墙与selinux已关闭编译器gccgccversion5.4.00609(Ubuntu5.4.0-6ubuntu1~16.04.4)ccs7.3(不含License)安装目录:/work/tools/ccs7armgccgccversion4.3.3(SourceryG++Liteq1-203)安装目录:/work/tools/dm6467t/arm-q1SDKdvsdk3_10_00_19安装目录:/work/projects/dm6467t/demo/dvsdk_3_10_00_19Linux内核2.6.32安装目录:/work/projects/dm6467t/linux-2.6.32u-boot1.1.6busybox1.22.1rootfs包含libc所需要so文件因为时间关系,无法提供技术支持,介意者勿拍。本人会不定时在blog中更新嵌入式开发相关内容,这些内容都将以此开发环境为基。辞牍刈:。虚拟机购置链接:虚拟机使用在用vmware打开虚拟机时,请选择移动此虚拟机,防止网络配置改变。Vmware网络配置虚拟机需要配置3个网络,对应地为虚拟机创建三个虚拟网卡。这个功效经过vmwareworkstation“编辑”->“虚拟网络编辑器”进行配置。请将Vmnet1中子网地址改为:将windows下工作目录共享给Linux接着做好VMWARE配置就能够将windows下工作目录共享给虚拟机系统了:在虚拟机/mnt/hgfs/projects目录就是windows下共享目录:[embed@localhost~]$cd/mnt/hgfs/projects/[embed@localhostprojects]$lsSamba使用接下来将Linux下目录共享给windows。在windows资源管理器中选择映射网络驱动器:接下来用户名和密码均选择embed/embed,即可在资源管理器中看到共享/work目录了。Samba服务配置可经过/etc/samba目录下配置文件完成。Ssh服务使用虚拟机中安装了openssh-server做为ssh服务程序,可经过/etc/ssh/sshd_config进行配置。使用时直接在SecureCRT中连接虚拟机即可:Tftp服务Tftp根目录:/work/tftpboot配置文件:/etc/default/tftpd-hpaNfs服务Nfs服务根目录:/work/nfs配置文件:/etc/exportsftp服务虚拟机中安装了vsftpd做为ftp服务器。配置文件:/etc/vsftpd.conf文件匿名用户根目录:/work/ftp,上传文件可放到/work/ftp/uploadtelnet服务可直接在windows命令窗口输入telnet30进行登录。http服务在浏览器下访问:可看到相关配置信息。在浏览器下访问:,使用root/embed登录可对mysql数据库进行配置。DVS6467T开发环境使用本节提及开发环境以下面软硬件为基。嚎搴现诖顳VS6467T仿真器合众致达XDS220U仿真器ccskok电子竞技本(无License)7.3安装目录:/work/tools/ccs7DVSDKdvsdk_3_10_00_19_Setup.bin安装目录:/work/projects/dm6467t/demo/dvsdk_3_10_00_19内核2.6.32安装目录:/work/projects/dm6467t/linux-2.6.32Uboot1.1.6安装目录:/work/projects/dm6467t/u-boot-1.1.6合众达开发工具软件备份\嵌入式平台\SEED-DVS6467T编译器安装CodeSourceryarm-q1-203/work/tools/dm6467t/arm-q1编译器前缀arm-none-linux-gnueabi-TI开发工具软件备份\嵌入式平台\TI-DVS6467TNfs根目录/work/nfs/dm6467DVSDK编译直接打开CCS,选择dvsdk,在右键菜单上选择build:对于dsplink等其它生成目标,能够经过下面方式进行编译:Uboot编译与DVSDK编译相同。Linux内核编译与DVSDK编译相同。仿真器使用用仿真器处理内核加载问题在使用合众达DVS6467T开发板时碰到一个问题,在内核选项中加上initramfs支持,结果在bootm时内核加载失败:##Bootingimageat8e000000...ImageName:Linux-2.6.10_mvl401-davinci_evm-ImageType:ARMLinuxKernelImage(uncompressed)DataSize:3479208Bytes=3.3MBLoadAddress:80008000EntryPoint:80008000VerifyingChecksum...OKOKStartingkernel...UncompressingLinuxdone,bootingthekernel.然后就没有下文了。这种情况其实在刚开始调试内核时经常会碰到,通常也只能经过内核功效添加和删除来初步判断问题位置。但我们现在有仿真器这个神器,就不再需要这么探索了。下面有请仿真器大神上场。首先开启uboot并将内核tftp到板上。Bootm后出现上文所提现象。在ccs下用仿真器连接设备:很显然pc跑飞了,但此时已经无法得到更多信息了。再来一次。用uboot将内核tftp下载到设备上,在bootm之前用ccs连接到设备,此时ccs将在uboot代码中中止下来:添加两个断点:因为0x80008000这个地址是Linux内核入口地址。在ccs中继续执行,uboot继续工作,我们也能够经过串口和uboot进行交互。在串口中输入bootm,此时仿真器将在内核入口处中止下来:经过单步执行,很轻易发觉程序跑飞位置:/**ThefollowingfragmentofcodeisexecutedwiththeMMUon,anduses*absoluteaddresses;thisisnotpositionindependent.**r0=cp#15controlregister*r1=machineID*r9=processorID*/ .type __mmap_switched,%function__mmap_switched: adr r3,__switch_data+4 ldmia r3!,{r4,r5,r6,r7} cmp r4,r5 @Copydatasegmentifneeded1: cmpne r5,r6 ldrne fp,[r4],#4 strne fp,[r5],#4 bne 1b mov fp,#0 @ClearBSS(andzerofp)1: cmp r6,r7 strcc fp,[r6],#4 bcc 1b在这里去除BSS段时程序飞了。经过检验各存放器值感觉并没有什么异常,但当内核执行到这里时,能够发觉mmu已经启用了,那么问题估量和这个关于了。看看之前执行MMU相关一段代码:/**Setuptheinitialpagetables.Weonlysetupthebarest*amountwhicharerequiredtogetthekernelrunning,which*generallymeansmappinginthekernelcode.**r8=machinfo*r9=cpuid*r10=procinfo**Returns:*r0,r3,r5,r6,r7corrupted*r4=physicalpagetableaddress*/ .type __create_page_tables,%function__create_page_tables: ldr r5,[r8,#MACHINFO_PHYSRAM] @physram pgtbl r4,r5 @pagetableaddress……….. /* *Nowsetupthepagetablesforourkerneldirect *mappedregion.WeroundTEXTADDRdowntothe *nearestmegabyteboundary.Itisassumedthat *thekernelfitswithin4contigous1MBsections. */ add r0,r4,#(TEXTADDR&0xff000000)>>18 @startofkernel str r3,[r0,#(TEXTADDR&0x00f00000)>>18]! add r3,r3,#1<<20 str r3,[r0,#4]! @KERNEL+1MB add r3,r3,#1<<20 str r3,[r0,#4]! @KERNEL+2MB add r3,r3,#1<<20 str r3,[r0,#4] @KERNEL+3MB……很显然这里只配置了内核代码开始3M空间,而我们内核在加上initramfs之后,bss段一部分数据是处于3M之外,这也是正是内核跑飞原因。≈涝蚓秃冒炝,修改下这段代码: /* *Nowsetupthepagetablesforourkerneldirect *mappedregion. */ add r0,r4,#(TEXTADDR&0xff000000)>>18 str r3,[r0,#(TEXTADDR&0x00f00000)>>18]! ldr r6,=(TEXTADDR+0x01000000-1) add r0,r0,#4 add r6,r4,r6,lsr#181: cmp r0,r6 add r3,r3,#1<<20 strls r3,[r0],#4 bls 1b再编译运行,搞定。≡赾cs7下进行DM6467开发测试工程创建测试工程接着创建一个CCS工程:ccs自动创建了两个工程:编译,开启调试,发生错误:因为这是裸机调试,需要在GEL文件中进行初始化。GEL配置打开工程中自动创建TMS320DM6467.ccxml,配置ARM端GEL文件:再开启调试:问题在于:hotmenuDSP_Boot_from_L2_ram(){/*L2RAMMemory*/boot_dsp_from_arm(0x11800000);}显然这里地址写错了,改为L2起始地址:0x11818000很遗憾,接着错:咱啥时候用ARM968了??在调试配置中去掉它:还是一样问题。把左边调试session全部删掉,再建立一个,搞定!开启dsp调试在dsp_main项目上开启调试,发生错误:在dsp_main工程调试配置文件中配置GEL:再开启dsp_main项目标调试,一切正常。实用代码分析与编写在创建完工程后,能够发觉有时候因为工程中代码过多,代码分析尤其慢,不过我们通常也不会参考到全部代码,所以将不需要使用目录排除在代码分析之外能够大大加紧代码分析速度。首先在不需要分析目录上右键并选择Excludefrombuild。接着更改项目标配置:经此更改,能够发觉ccs分析代码速度加紧了许多。≡诖胫悄芴嵝焉,eclipse也提供了一些相当不错功效。即使感觉依然比不上vs强大,不过也基本合乎我们需要了。Linux内核编译首先在ccs下创建一个Makefile工程:并将路径指向内核代码所在路径:创建完成后是这个样子:接着配置交叉编译环境,打开项目属性:这两个参数将传递给make命令。再把交叉编译器路径添加到PATH列表中。最终修改一下生成目标:经过这些简单配置,就能够很方便地在CCS里面编译内核了,在发生错误时候也能够快速定位到错误位置,太赞了。”嘁肭?楸嘁肭?楹捅嘁肽诤似涫荡笸∫,因为其都是Makefile类型工程。首先创建一个Makefile类型项目,并指向源码所在位置,本文使用dvsdk中带cmemk。在dvsdk中cmemkMakefile引用了其顶层目录Makefile,因为我们并不希望和庞大DVSDK扯上关系,所以修改Makefile:#Weconditionallyinclude$(ROOTDIR)/Rules.makebecausewhenthe#kernelmakesysteminvokesus,itwon'tbefound...butthat'sokay.#-include$(ROOTDIR)/Rules.make去掉对Rules.make引用。因为在Rules.make文件中定义了一些环境变量,在去除此文件后,我们需要在CCS7环境中定义这些变量:再定义上make命令行所必须ARCH和CROSS_COMPILE变量:就能够很轻松地编译Linux模块驱动了。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
kok电子竞技:最新文档
- 玻璃卸车施工方案
- 广场水池石材施工方案
- 砖头固化地坪施工方案
- 江门港码头施工方案
- 建筑地漏防渗施工方案
- 柴油电喷维修施工方案
- 二零二五年度冷冻食品冷链物流保险合同
- 农村水电资源开发与农村生态旅游合作协议(2025年度)
- 2025年度高新技术产业园区场地无偿使用协议
- 二零二五年度劳务安全责任协议书(含安全设备更新)
- GB/T 7631.5-1989润滑剂和有关产品(L类)的分类第5部分:M组(金属加工)
- GB/T 41326-2022六氟丁二烯
- 注塑模具分类及结构组成
- GB/T 14002-2008劳动定员定额术语
- 盆腔炎性疾病后遗症-病因病机-(中医)
- 沁园春雪拼音kok电子竞技
- 传染病防治法培训讲义课件
- 法律方法阶梯实用kok电子竞技课件
- KET词汇表(英文中文完整kok电子竞技)
- 实验 探究弹簧弹力与形变量的关系2022-2023学年高一物理(人教kok电子竞技2019必修第一册)
- 《三位数的加减法》单元分析
评论
0/150
提交评论