77范文网 - 专业文章范例文档资料分享平台

Linux系统实时响应特性分析与实验验证——基于Ti达芬奇DSP系列TM(8)

来源:网络收集 时间:2018-12-20 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

之类的单核ARM那么简单,因为DM6441还有DSP端的开发环境,以及双核之间的通信和程序编译等问题,所以在DM6441上进行开发第一步是搭建开发环境。 DAVINCI开发环境搭建基本上可分以下几步:

? 准备好各种相关的windows,linux,DAVINCI软件开发包安装软件; ? linux环境搭建; ? ARM编译环境搭建; ? DSP编译环境搭建;

? 编译DSP算法LIB,生成x64P,由ARM端可执行程序调用运行。

软件工具包都可在TI官网上下载,这是下载网址:http://software-dl.ti.com/dsps/dsps_ public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_2_00/latest/index_FDS.html。需要下载的软件包有以下几个:

a. mvl_5_0_0801921_demo_sys_setuplinux.bin:这是GCC交叉编译工具,根文件系统

target需注册TI账号;

b. mvl_5_0_0_demo_lsp_setuplinux_02_00_00_140.bin:最新montavista linux-2.6.18内核

等安装包;

c. dvsdk_setuplinux_2_00_00_22.bin:这个是TI的EVM的软件开发包; d. bios_setuplinux_5_33_06.bin; e. xdctools_setuplinux_3_10_03.bin; f. ti_cgt_c6000_6.0.23_setup_linux_x86.bin。

在开发主机上搭好Linux环境后,安装配置已下载的DVSDK工具链、软件开发包(MontaVista Linux内核)和Code Composer Studio IDE(CCS集成开发环境)等。 5.2.2 Linux系统移植

Linux系统移植包括UBL、UBOOT、KERNEL、ROOTFS和相关DEVICE DRIVERS移植。

(1) UBL移植

UBL的移植,相对于UBOOT移植、KERNEL移植、ROOTFS移植、设备驱动及DSP开发来说,还是比较简单的。对于固件程序烧写在NAND FLASH 的DaVinci dm644x嵌入式系统,上电启动的过程如下图18所示:

31

RBLKERNELUBL文件系统中的各种应用程序,包括DSP程序UBOOT 图18 DM644X启动过程示意图

UBL移植工作主要集中在DDR2和Nand Flash的移植。目标板的DDR2和Nand Flash关键参数如下:

DDR2:三星的K4T1G164QE-HCLE6,CL=3,16bit,8bank, PageSize=512word Nand Flash:ST的NAND512-A,512M,BusWidth=8,PageSize=512B,BlockSize=16K 根据DDR2和Nand Flash的数据手册对device.c和device.h文件进行相应修改即可。

(2) UBOOT移植

UBOOT的版本更新速度比较快,截止今天,稳定正式的版本是u-boot-2012.04-rc3,而TI最新的EVM开发包里的UBOOT是1.2.0版本。UBOOT源码包从ftp.denx.de上下载。下载后首先删除与平台不相关的文件和文件夹,目的让UBOOT更简化,好理解,减少虚拟机的存储空间,便于备份。同样地根据目标板硬件修改相关源代码文件,在davinci_DM6441.h中修改代码支持SMALLPAGE的Nand Flash,去掉对EEPROM的支持等。最后修改顶层Makefile文件,编译生成u-boot.bin和u-boot.img等文件。

(3) KERNEL移植

内核是操作系统的内部核心程序,它向外部提供了对计算机设备的核心管理调用。Linux的源代码被组织成树形结构,核心函数源代码在\和\两个目录下。

Kernel移植主要对内核进行裁减。先是采用DaVinci dm644x Linux内核缺省配置,配置文件在Linux-2.6.18_pro500/arch/arm/configs目录下,先用cp命令复制到Linux-2.6.18_pro500目录,并命名为.config,最后通过make menuconfig命令即可进入熟悉的内核配置菜单。

32

由于本文只需在DM6441目标上运行MontaVista Linux系统,不必配置无关驱动。另外,目标板没有RJ45网络接口,内核镜像文件只能通过串口传送到目标上运行与固化。因此,必须严格控制生成的内核镜像文件大小,精简一切无关的东西。因此,在内核配置中去掉ATA、网卡、USB等等外设驱动。然后在arch/arm/mach-davinci/board-evm修改相关部分,如去掉对Nor Flash的支持,Nand Flash的分区配置,引脚复用配置,中断优先级设置等。

最后退出并保存配置信息,使用make bzImage编译生成内核镜像文件zImage,再转换成davinci_kernel.bin文件,通过U-BOOT和串口传送到目标板上运行与固化。

(4) ROOTFS移植

Linux根文件系统是存放tool软件、lib文件、script(脚本)、配置文件、其他特殊文件、应用程序的地方。嵌入式linux的根文件系统rootfs就像windows操作系统的C、D盘这种概念机制,FLASH对应硬盘。但linux是挂载点的概念,根文件系统是一个整体,组织到一个树状的目录结构中。这种文件组织遵守文件系统科学分类标准FHS,一种国际标准。

在mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le目录下,有个target的文件夹,这个就是TI EVM的根文件系统了。TI在这个target文件系统包里提供了很多开发工具,包括交叉编译命令、很多头文件和应用程序的源代码、usr/lib里的lib文件,等等。其实这些东西肯定是不能全部烧到自己的板子里的,单单这个usr里相关的文件大小就达1G!因为TI EVM内容多而杂,所以必须进行裁减。当然,也可以手动重新制作根文件系统,再借助Busybox就可制作一个精简的文件系统。因为做以前的项目,刚好有现成的文件系统JFFS2,直接使用在目标上了。 5.3 任务切换时间测试与数据分析 5.3.1 任务切换时间测试

针对前面设计的任务切换时间测试方案,编写了相应的测试程序,详见附录B、附录C、附录D和附录F。交叉编译后生成以下几个程序,同时为方便测试而编写了几个shell脚本,并通过串口传送到目标板上:

? soft_task_switch_time_test:软件测试任务切换时间程序; ? hard_task_switch_time_test:示波器测试任务切换时间程序; ? system_task_load:创建后台进程,可多次执行;

? stop_system_task_load.sh:停止创建的所有后台程序的shell脚本;

33

? davinci_dm644x_gpios.ko:GPIO驱动模块;

? load_davinci_dm644x_gpios.sh:装载GPIO驱动模块并创建设备文件节点的shell脚本。 (1) 软件测试任务切换时间

执行system_task_load脚本创建不同数量的后台进程,模拟系统的实际运行情况;在执行soft_task_switch_time_test时设定测试次数,并设置用于相互切换两进程的实时优先级,下图19是测试程序在创建12个后台进程,设置实时优先级为0时连续测试10次的测试结果截图:

在不同负载下,分别设置用于相互切换两进程的实时优先级为最低和最高两种情况下,通过软件方式测得任务切换时间数据如下表2所示。

34

图19 软件测试任务切换时间(优先级为0,负载为12)

表2 软件测试任务切换时间 单位:微秒(us) 进程实时优先级为0时 测量

次数 负载0* 负 载4* 负载8 负载12 1 2 3 4 5 6 7 8 9 10

118.805 4633.637 10784.601

3525.422

129.622 129.055 129.171 129.927 130.248 128.991 128.885 128.367 128.580 128.723

进程实时优先级为99时

负载0 负载4

132.781 126.479 127.478 126.785 126.989 126.460 126.689 127.072 126.619 127.450

负载8 127.662 126.970 127.365 127.848 127.537 128.252 128.038 127.322 126.817 126.984

负载12 128.450 128.446 129.200 129.321 128.247 129.294 128.607 127.905 127.693 127.404

118.698 5044.952 16481.630 19540.726 118.879 5297.886 12555.404 20973.648 118.780 4475.423

8386.689

25988.453

118.785 4699.266 16304.779 22132.748 121.059 4694.466

8365.357

11153.885

119.030 9052.384 19781.404 17039.917 118.967 5096.873 24422.115 22966.818 119.776 3527.069 12238.396 28292.832 119.498

324.961

21784.093 10844.083

注:*负载0表示负载为开机负载,负载4表示负载为创建4个后台进程,以此类推,下同。

(2) 示波器测试任务切换时间

先执行脚本load_davinci_dm644x_gpios.sh装载GPIO驱动模块并创建设备文件节点。 同样执行system_task_load脚本创建不同数量的后台进程,模拟系统的实际运行情况;在执行hard_task_switch_time_test时设定测试次数,并设置用于相互切换两进程的实时优先级,用示波器观测测试引脚GPIO19的高电平持续时间。下图20为测试程序是在创建12个后台进程,设置实时优先级为0,每切换10次的时间为一个高电平持续时间,用示波器测试GPIO19的高电平持续时间的情况:

35

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux系统实时响应特性分析与实验验证——基于Ti达芬奇DSP系列TM(8)在线全文阅读。

Linux系统实时响应特性分析与实验验证——基于Ti达芬奇DSP系列TM(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/378763.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: