




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
dm814x am387x ez software developers guide中文手册 嵌入式开发者爱好群:122879839 翻译:卢浩dm814x am387x软件开发指南 内容:1 欢迎 dm814x ez 软件开发人员指南2 开始你的软件开发 2.1设置 ez sdk 2.2编写您自己的hello world !应用程序和并在目标系统上执行3目标文件系统上运行的预安装的应用程序 3.1 达芬奇演示示例3.1.1运行omtb 3.2 运行syslink demo 3.3 运行编解码引擎demo 3.4 运行qt/e demo 3.5 运行图形sdk demo 3.6运行 gstreamer 管道4使用 devkits 4.1再生 devkits 4.2验证 devkit 完整性 4.3移动 devkits5 ezsdk 软件概述 5.1创建 linux 应用程序 5.2创建 sys/link 链接应用程序 5.3 创建 openmax il 应用程序 5.4 创建 qt/e嵌入式应用程序 5.5 矩阵用户指南 5.6 创建 gstreamer 应用程序 5.6.1编译一个gstreamer 应用程序 6 其他程序6.1 交叉编译环境设置6.2 修改 ezsdk 内存映射6.3 重建 ez sdk 组件6.4 定制linux 内核6.5 设置 tera term6.6 如何做一张sd卡6.7 如何把bootloader拷贝到nandflash6.8 如何改变显示分辨率6.9如何更改显示从lcd到hdmi 感谢您选择dm814x评估模块(evm作为您的应用程序开发的平台。 让大家在linux ubuntu10.04lts上开发dm814x。注意:此软件开发指南“(sdg),的dm814x ezsdk的,这是唯一支持版本5.03 linux主机的发展。注意:本指南假定您已经按照快速入门指南(qsg)设立的evm。安装简易的软件开发套件(ez sdk)。 你可以找到一个与你的evm中的硬拷贝。 另外,您可以参考快速安装手册。注意:本指南中所有的指令都是用于ubuntu的10.04。在这个时候,它是唯一受支持的linux版本。注意:在以前的dvsdk发布!已经解释如何设立在本文档中会有说明执行命令。 有些是要在执行在linux开发主机,一些基于linux的目标和一些的u-boot(引导程序)提示。 他们是区分不同的命令提示如下:主机$ 目标板# u-boot : 启动软件开发应安装在继续之前,您的ez sdk。 在本文档将假定您有一个环境变量 ezsdk的,它指向您的ez sdk安装。 你可以将它设置为默认位置(以下假定的ez sdk的安装在默认位置):设立的ez sdk您将需要一个arm linux开发环境来看下如何设置一个。arm-linux开发环境配置请获取代码的sourcery工具,这将是为arm linux应用程序的编译器。sourcery工具下载ez sdk自带一个脚本设置你的ubuntu 10.04开发主机以及您的目标引导境。 它是一个交互式的脚本,但如果你接受按回车键的默认值,你会使用推荐的置。 这是首次用户建议。 请注意,此脚本需要以太网访问开发使用所需的软件包,因为它会更新你的ubuntu linux开发主机简易的sdk。 执行脚本使用:host $ $ezsdk/setup.sh 如果您在安装过程中接受默认设置,你现在已经建立了你的开发主机和定位到从开发主机使用tftp引导的linux内核。 在你的开发主机的linux提取内核默认的/ tftpboot。1从开发主机使用nfs引导linux的文件系统。 对你的开发主机linux目标文件系统位于 $ home / targetfs2minicom是建立沟通,通过rs-232的目标。 如果你想使用windows主机连接到目标板,请设置tera term。3注意!从nfs启动板,你可能需要改变你的evm启动开关设置。 请是指在交换机上设置的更多信息参考board-support/docs文件夹的的uboot用户指南。如果你开始在你的linux-ubuntu中开发使用 minicom(或windows超级终端),打开evm板电源,linux将启动。linux引导起来后,登录到使用的root的根目录 。注意!矩阵的应用程序启动器会自动启动。如果你退出之后想再次启动,目标板上执行以下命令:target # /etc/init.d/matrix-gui-e start如果您的套件包括一个lcd显示屏,首次矩阵gui执行,你会去通过lcd触摸屏校准过程。 校准过程是附加于其他应用程序的重要矩阵的gui需要校准才能成功运行。 您也可以手动运行校准,矩阵的gui目标板上执行以下命令:target # ln -s /dev/input/event0 /dev/input/touchscreen0target # ts_calibrate确保你已经终止之前运行的程序:target # /etc/init.d/matrix-gui-e stop写自己的“hello world!” 应用和在开发板上执行本节说明如何创建/建立您的主机上开发pc的应用程序,并执行基本的linux在你的引导的目标文件系统的应用。1 pc主机上创建自己的工作目录,并输入:host $ mkdir $home/workdirhost $ cd $home/workdir2 创建一个新的c源文件:host $ gedit helloworld.c输入下面的源代码#include int main()printf(hello world!n); 3,创建一个基本的makefile:host $ gedit makefile输入以下内容: # import the variables from the ezsdk so that you can find the ezsdk componentsinclude $ezsdk/rules.makehelloworld:# make sure that you use a tab below$(cstool_prefix)gcc -o helloworld helloworld.c 保存文件并退出。4确保 $ezsdk 变量是仍然使用设置:host $ echo $ezsdk此命令应打印您的ezsdk安装目录。 如果没有,你将不得不再次设置它编译应用程序:host $ make helloworld helloworld可执行文件将生成在$ home / workdir5 你现在有自己的应用程序,但你需要创建一个目录,复制到nfs目录,让开发板可以进行nfs加载:host $ mkdir $home/targetfs/home/root/dm814xhost $ cp helloworld $home/targetfs/home/root/dm814x6这个应用程序将在你的目标是访问/ home/root/dm814x/helloworld。 执行它在你的开发板上:target # /home/root/dm814x/helloworld你现在应该看到下面的输出:hello world!恭喜! 你现在有自己的应用程序在开发板上成功运行了。 在开发板上安装运行应用程序 文件系统配备了一些预置的应用程序(可在ezsdk包重建)。 这本节说明如何执行这些文件系统提供的应用程序。在运行前确保矩阵应用程序没有运行。 这可以通过执行以下命令在串行终端target # /etc/init.d/matrix-gui-e stop如果你想在以后的时间重新启动矩阵应用程序,您可以执行以下命令。target # /etc/init.d/matrix-gui-e start 运行达芬奇演示的例子示例应用ezsdk对于达芬奇多媒体,您可以使用omtb运行不同的openmax il链。 omtb是对openmax试验台,这是一个命令行实用程序,用于验证的openmax。运行omtb注:为了看到视频输出,图形的引擎需要被关闭。 欲了解更多有关信息图形引擎和sysfs入口,请阅读文件vpss指南。通过运行以下命令关闭图形平面target # echo 0 /sys/devices/platform/vpss/graphics0/enabled图形平面1和2的情况下,目前开放的,那么他们需要禁用target # echo 0 /sys/devices/platform/vpss/graphics1/enabledtarget # echo 0 /sys/devices/platform/vpss/graphics2/enabled执行以下命令运行omtb。target # cd /usr/share/ti/ti-omtbtarget # ./omtb_a8host.xv5t .oms如需对omtb和如何构建的openmax il链的详细信息,请参阅omx和omtb文档。注:的 omtb将需要一个脚本来运行,不应该被称为没有一个有效的脚本作为参数。注意:您将需要把图形平面上,如果你想运行任何图形应用。 您还需要恢复的变化的情况下,你希望看到的视频演示/etc/init.d/load-hd-firmware.sh运行 syslink 示例在syslink带有一些示例应用程序。 要运行示例应用程序,如“messageq”使用下面的命令。注意!syslink样品从默认ezsdk安装使用不同的内存映射。 为了运行syslink的例子,你必须引导与linux等不同的内存。 开机时,确保在linuxbootargs改变默认值 的mem = 169m请注意!syslink样品不能运行图形或固件加载。 请执行以下步骤拆卸图形平面,并确保没有固件运行。target # /etc/init.d/pvr-init stoptarget # /etc/init.d/matrix-gui-e stoptarget # /etc/init.d/load-hd-firmware.sh stop目前,该系统是准备运行所有syslink的样品。target # modprobe syslinktarget # cd /usr/share/ti/syslink-examples/ti814x执行下面的脚本来运行示例应用程序target # ./runsamples_debug.sh目标终端窗口将输出结果执行的例子。请参阅的在component-sources/syslink_x_xx_xx_xx/docs syslink文档的实验研究这些例子和如何改变内存映射的进一步信息。 运行编解码器引擎的例子编解码器引擎附赠一个小例子。注意!syslink样品从默认ezsdk安装使用不同的内存映射。 为了运syslink的例子,你必须引导与linux等不同的内存。 开机时,确保在linuxbootargs改变默认值 的mem = 169m注意!不能运行图形编解码器引擎的例子。 请执行下列步骤拆解的平面图形和确保没有固件运行。target # /etc/init.d/pvr-init stoptarget # /etc/init.d/matrix-gui-e stoptarget # /etc/init.d/load-hd-firmware.sh stop 运行该应用程序,输入下面的一组目标的命令:target # cd /usr/share/ti/ti-codec-engine-examples确保syslink和cmem模块与内存配置安装如下target # modprobe syslinktarget # modprobe cmemk phys_start=0x94000000 phys_end=0x947fffff pools=20x4096,10x131072,2x1048576要运行audio1_copy,你将需要运行下面的命令。target # cd audio1_copytarget # ./app_remote.xv5t运行其他的例子,请参阅编解码器引擎文档。 运行qt / embedded的例子qt的嵌入式自带的一些示例应用程序。 看到可用的例子,看看这个目录:target # cd /usr/bin/qtopia/examplestarget # ls执行以下命令来运行qt / e的日历示例应用程序。注 -矩阵的gui应用程序之前运行qt / embedded的例子,你应该退出。 您将需要输出额外的触摸屏相关的变量。target # export tslib_tsdevice=/dev/input/event0target # export qws_mouse_proto=tslib:/dev/input/event0 auto:/dev/input/micetarget # cd /usr/bin/qtopia/examples/richtext/calendartarget # ./calendar -qws -geometry 320x200+50+20当你看到日历界面,按 ctrl-c来终止 运行图形sdk的例子图形sdk自带的一些示例应用程序。 看到可用的例子,看看这个目标目录:target # cd /usr/bin/sgx/demos/rawtarget # ls这里是应用程序的列表,你会看到:ogles2chameleonman oglesevilskull oglespolybumpogles2coverflow oglesfilmtv oglesshadowtechniquesogles2filmtv oglesfivespheres oglesskyboxogles2phantommask oglesfur oglestrilinearogles2shaders ogleslighting oglesuserclipplanesogles2skybox2 oglesmouse oglesvaseogles2water oglesoptimizemeshoglescoverflow oglesparticles 执行下面的命令来运行3d图形应用程序,这个特殊的例子是给album coverflow的target # ./ogles2coverflow你看到的显示界面上的输出后,打 q来终止它运行的gstreamer套件ezsdk是由gstreamer 产生的,你可以构建自己的套件,请参阅 1 。注:为了看到视频输出,图形的加速需要被关闭。 欲了解更多有关信息图形加速和sysfs入口,请阅读vpss指南。通过运行以下命令关闭图形平面target # echo 0 /sys/devices/platform/vpss/graphics0/enabled图形平面1和2的情况下,目前是开放的,那么他们需要禁用。target # echo 0 /sys/devices/platform/vpss/graphics1/enabledtarget # echo 0 /sys/devices/platform/vpss/graphics2/enabled以下套件的h.264基本流解码和显示它的hdmi: target # gst-launch -v filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! video/x-h264 ! h264parse access-unit=true ! omx_h264dec ! omx_scaler ! omx_ctrl display-mode=omx_dc_mode_1080p_60 ! omx_videosink sync=false 使用devkits在的ezsdk的顶层目录,你会发现一个或多个devkits,通常 的linux devkitdsp-的devkit。 devkits是1 发展为一个特定的硬件子系统的应用程序(如工具,库和头文件arm或dsp)。2 devkits是重定位的,这意味着你可以将它们移动到另一个文件系统上的位置和他们仍然可以工作(看#moving the devkits)3 devkits 不包含源代码,或建立档案。 如果你想改变组件,或使改变一个组件,需要再生的devkit,(看#moving the devkits)4 devkit包含ti的组件文档 devkits介绍了什么是可为每个硬件子系统提供一个统一视图,并提出了系统的软件,而不是一个组件视图ezsdk视图。 由于他们是重定位,他们也更容易为用户检查版本控制。注意!组件本身仍然可以从$ ezsdk /组件的源代码目录,$ ezsdk / rules.make文件还指出,所有的组件目录。 如果你不希望建立对devkits,而是直接对组件,这仍然是可能的。再生的devkits因为你改变了组件的版本,在这种情况下,你(编解码器,您可能需要重新生成的devkit发动机为例):从网上下载新的编解码器引擎释放。1。阅读发行说明,以确保所有的依赖关系感到满意,或者你可以有更多更新组件。2。提取下载的版本,你的目标文件系统和更新 ce_install_dir变量$ ezsdk / rules.make指向新的位置。3。输入 $ ezsdk目录。4。通过执行 使清洁 干净的ezsdk使你的目标不相关的文件(linux操作系统,dsp等)不被复制。5。确保组件为linux编译通过执行 使components_linux的 。6。执行 linux系统的devkit填充与ti组件的linux的devkit。7。通过执行 make clean 来clean ezsdk。8。确保组件被编译为dsp执行 使components_dsp的 。9。执行 使dsp的devkit来填充的dsp与ti组件的devkit。10。如果您已修改一个组件,在这种情况下,ti将能够提供的支持是有限的,你可以使用只有过去的7上述步骤再生devkits。请注意,并非所有的元件有助于所有devkits的。 你可能只有如dsp-的devkit更新或改变sysbios。 验证的devkit完整性创建devkits时,会生成两个文件的devkit的顶层目录: 1.install.log的包含ti组件的devkit在使用的版本。2.md5sums包含的所有文件中的devkit的md5sum。此外,$ ezsdk / docs目录中包含的md5sum发布时间devkits的 如果文件已被更改,或者更新一个组件的md5sum。 为了验证这是否是如dsp-的devkit的情况下,进入dsp的devkit目录并执行:host $ md5sum -c $ezsdk/docs/dsp-devkit.md5sums | grep -v ok$如果没有这个命令的输出,你的诚信是由德州仪器公布的devkit确定。 如果有一个错误,有问题的文件将被打印。移动devkitsdevkits是重定位,而其余的ezsdk。 这意味着,你可以把在devkits任何在你的linux文件系统的目录,只要你做以下的事情(dsp的devkit例如):如果你想能够再生dsp的devkit(见 #regenerating the devkits,你需要更新dsp_devkit_dir变量$ ezsdk / rules.make。1。对从dsp命令行的devkit建设之前,你需要到“源”环境设置脚本(不要忘了 。)2。host $ . /path/to/dsp-devkit/environment-setup 注意!$ ezsdk / linux-devkit/environment-setup的改变sdk_path变量来指向您的新位置。你可以通过执行以下的linux的devkit看到您的新位置:host $ pwd注意!dsp-的devkit不包含xdctools的。 如果您需要搬迁的devkit,路径xdctools需要要更新在dsp-devkit/environment-setup。 ezsdk软件概述 ez sdk软件堆栈的概述ez sdk包含许多软件组件。 有些是由德州仪器开发的,有些是开发和开源社区(白色)。 ti的贡献,有时甚至认为,这些开源社区项目,但支持的模式从单纯的发展项目是不同的。 创建一个linux应用程序 虽然创建一个基本的linux应用程序,您通常使用的堆栈以下组件(其余的都是灰色以上): 如何写这种类型的应用,你可以找到所有网站上的例子。 psp的例子是如何访问具体到这个平台的外设驱动程序的一个很好的参考。 创建一个sys/link应用程序 sys /链接(syslink)是横跨hlos-rtos的处理器间通信软件基础边界。 它提供了一个通用api抽象的物理链路连接hlos的特点和rtos的应用程序。 它无需为客户开发等环节从头让他们更专注于应用开发。syslink提供的几个特点和功能,使开发人员更容易和更方便使用多核心系统:提供了一个通用的api接口的应用程序隐藏平台/硬件从应用程序的具体细节隐藏hlos操作系统的具体细节从应用程序中,否则需要交谈硬件(如中断服务)一个平台上syslink书面申请,可以直接作用于其他平台/ os组合需要在应用程序代码中没有或轻微变化使应用程序的便携式可以灵活地选择和使用最合适的高/低级别的协议的应用提供可扩展性的应用程序在选择从syslink的只有需要的模块。 创建一个openmax 1l应用程序 一个基本的omx的应用程序组件使用的概述对openmax il包包装的关键多媒体功能,可以从arm的使用方调用简单的api调用。 创建一个qt/e应用程序 qt / embedded的图形渲染linux的framebuffer设备是一个图形用户界面工具箱,包含在这个套件。 基于这个qt的工具包,另一方面呈现图形x11的图形用户接口,而不是基本的framebuffer。 编译应用程序ez sdk linux开发工具包包括了qt / embedded主机工具和发展的头和库。1,首先,你设置交叉编译环境2,接下来,按照典型的qt / e交叉编译您的应用程序主机上推荐的方法 host $ cd host $ qmake -projecthost $ qmakehost $ make 矩阵用户指南创建一个gstreamer应用程序 gstreamer是一个开源的多媒体框架,它允许你建造管道连接处理多媒体内容的插件。 商品及服务税的openmax插件加速使用的openmax多媒体。相比直接omx集团的顶部创建一个应用程序,你得到的a / v同步的优势,并获得许多有用的开源插件,例如:允许你解复用器avi文件或mp4文件。 缺点是增加了复杂性和开销。除了 对omx的应用程序使用的组件,这些都是用来: 编译的gstreamer应用程序ezsdk linux开发套件包括gstreamer的开发头文件,库和软件包configs。1,首先,配置你的交叉编译环境2。接着,按照编译您的应用程序典型的gstreamer推荐的方法。 例如: host $ cd host $ arm-none-linux-gnueabi-gcc -o decode decode.c pkg-config -libs -cflags gstreamer-0.10附加程序建立交叉编译环境为了使您的应用程序开发,ez sdk自带的linux的devkit包含包头,库和在开发过程中所需的其他包装相关的信息。 执行以下命令来配置你的交叉编译环境host $ source $ezsdk/linux-devkit/environment-setup上述命令将导出交叉编译特定的环境变量。你会注意到,该命令将添加 linux系统的devkit bash提示符表明您输出所需的交叉编译器变量。修改ezsdk存储器映射默认情况下,内存映射ezsdk船舶,配置1gb的ddr。 如何更多细节ti的配置内存映射到不同大小的内存,或什至改变分区在 /index.php/ezsdk_memory_map 处理器的wiki 。重建的ez sdk组件在ez sdk提供了一个顶层makefile允许范围内的各个组成部分的重新建设ezsdk。注:ez sdk组件生成环境是自包含,不需要设置交叉编译环境,我们应避免使用,以防止可能生成故障。重建首先进入ez sdk目录使用ezsdk组件:host $ cd $ezsdk ez sdk的makefile中有一个允许你重建ezsdk的组件构建目标。 为一个完整的列表执行:host $ make help在ez sdk提供的一些组件没有预先建立。 提供make clean & make components使组件的建设目标,旨在清理并生成所有组件(例如linux内核的cmem,dmai等)的生成是强制性的,开始应用开发。 这些组件必须先然后由用户清理和重建之前,用户试图重建别的。 要做到这一点,只需运行host $ make cleanhost $ make components在那之后,每一个“帮助”然后,可以执行使用中列出的构建目标:host $ make _cleanhost $ make host $ make _install 为了安装在你的目标所产生的二进制文件,执行“安装”的目标之一。 其中,二进制文件复制由 exec_dir变量控制在$ ezsdk / rules.make。 这个变量是成立指向您的nfs安装的目标文件系统,当你执行的ez sdk安装脚本(setup.sh),但可以手动改变,以适应您的需求。你可以在任何时间删除所有组件生成的文件:host $ make clean你可以重建使用的所有组件:host $ make all然后,您可以安装所有由此产生的目标文件:host $ make install创建自己的linux内核映像预构建的linux内核映像(把uimage)的ezsdk提供一个默认编译配置。 你可能想改变此配置为您的应用程序,甚至改变内核源代码本身。 本节说明如何重新编译linux内核提供的ezsdk,并显示您如何引导,而不是默认的linux内核映像。1,如果您尚未这样做,请按照指示在setting_up_the_ez_sdk设置你的构建环境。2,重新编译内核通过执行以下命令:host $ cd $ezsdkhost $ make linux_cleanhost $ make linuxhost $ make linux_install 3,您将需要一个引导装载程序(u-boot的)的方式,加载你新的uimage。 tftp服务器在设置 setting_up_the_ez_sdk章节4,复制你的uimage从exec_dir ($ ezsdk / rules.make)到tftp服务目录host $ cp $home/targetfs/home/root/dm814x/boot/uimage /tftpboot5,复制导出的linux,从exec_dir到/ lib / modules目录的内核模块:host $ sudo cp -r $home/targetfs/lib/modules $home/targetfs/lib/modules_originalhost $ sudo cp -r $home/targetfs/home/root/dm814x/lib/modules $home/targetfs/libtargetfs/home/root/dm814x/lib/modules6,运行u-boot的脚本,并按照指示进行。 选择你的linux内核的位置和文件的tftp“把uimage”作为你的内核映像。host $ $ezsdk/bin/setup-uboot-env.sh注意! 在此版本的ez sdk,u-boot的不从efuses读取mac地址。 作为一个结果以太网mac地址,需要选择一个有效的随机mac地址手动设置。 更多细节参考u-boot文件。 请运行以下命令来设置以太网mac地址u-boot : set ethaddr 7。注意,当你改变你的内核,重要的是要重建所提供的内核模块ezsdk子组件。 目录下,你可以找到这些模块列表/ / lib/modules/2.6.32-rc2-davinci1/kernel/drivers/dsp(取代的版本2.6.32-rc2-davinci1内核适用于您的平台)host $ ls $home/targetfs/lib/modules/2.6.32-rc2-davinci1/kernel/drivers/dsp/对于每一个你看到列出的模块,你应该回去主机,重建,并与取代文件从您exec_dir。 例如,为cmemk.kohost $ cd $ezsdkhost $ make cmem_cleanhost $ make cmemhost $ make cmem_installhost $ sudo mv $home/targetfs/lib/modules/2.6.32-rc2-davinci1/kernel/drivers/dsp/cmemk.ko $home/targetfs/lib/modules/2.6.32-rc2-davinci1/kernel/drivers/dsp/cmemk.ko.orighost $ sudo cp $home/targetfs/home/root/dm814x/cmem/cmemk.ko $home/targetfs/lib/modules/2.6.32-rc2-davinci1/kernel/drivers/dsp8。更新所有模块后,启动minicom或tera和电源循环电路板。 新内核现在可以通过tftp从你的linux主机下载。设置tera termtera是在windows上常用的终端程序。 如果你喜欢用它代替的minicom,你可以按照下列步骤来设置它。1 下载tera,然后启动程序2,选择菜单中的设置- 常规.并设置:默认端口:com13,在菜单中选择设置- 串行端口.并设置以下:端口:com1波特率:115200数据:8位奇偶校验:无停止:1位流量控制:无注: 内核bootargs可以被运行安装脚本生成。 见章节setting_up_the_ez_sdk上运行安装脚本的详细信息。如何创建一个sd卡本节解释创建sd卡dm814x形象和步骤所需的程序已2gb,4gb和8gb的sd卡上验证。1。将linux的主机上的sd卡。2。运行dmesg命令检查设备节点。 三倍检查,以确保不损坏你的硬盘内容!host $ dmesg14365.272631 sd 6:0:0:1: sdb 3862528 512-byte logical blocks: (1.97 gb/1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版权转让合同范本
- 2024年江西洪州职业学院辅导员考试真题
- 四川省新高考2025届高三适应性考试(第三次联考)数学试题(解析版)
- 2025年二手电商信用体系建设与行业自律机制研究报告
- 药品及健康产品批发机器人行业深度调研及发展项目商业计划书
- 医疗物联网平台行业跨境出海项目商业计划书
- 大学语法词性题目及答案
- 大学和声写作题目及答案
- 2025年动漫产业链协同创新与产业生态构建研究报告
- 全国二级英语考试试题及答案
- 空调保养维修合同范本
- 安全文明措施费使用计划方案
- 遵守廉洁纪律管理制度
- 西藏特色美食文化介绍推介PPT图文课件
- 路灯养护投标方案(技术方案)
- 国家开放大学电大本科《管理英语4》期末试题题库及答案(试卷号:1389)
- 护理文书质控PDCA工作汇报
- 询价投标文件(范本)
- 手术室PDCA-提高急诊手术器械物品准备的完善率
- 幼儿园大班心理健康《我勇敢了》课件
- 单光纤光镊数值仿真和光阱力计算的中期报告
评论
0/150
提交评论