版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
©NXROBO20231.鸿蒙开发的环境搭建课程说明开源鸿蒙系统介绍开源鸿蒙系统的开发环境©NXROBO20232开源鸿蒙系统介绍©NXROBO20233鸿蒙和开源鸿蒙系统©NXROBO20234鸿蒙(HarmonyOS)是华为公司在2019年8月发布的可穿戴设备、智能家居、汽车、手机、平板电脑等设备上的新一代操作系统。它可以提供更安全、更平滑、更智能的使用体验,也支持多端统一开发,可以应对不同设备之间的互联互通。鸿蒙还可以通过分布式技术支持设备之间的协同工作,实现智能化互联,更好地满足人们的需求。开源鸿蒙(OpenHarmony)是华为公司于2019年8月发布的一个开源的分布式操作系统。它是一个全场景的、可裁剪化的系统内核,可以支持手机、电视、PC、车载、数码仪器等设备。同时,开源鸿蒙也支持多端统一开发,帮助开发者更方便地创建跨设备、跨平台的应用。开源鸿蒙(OpenHarmony)是鸿蒙操作系统(HarmonyOS)的开源版本。开源版本的推出,意味着开发人员可以更加自由地对鸿蒙进行二次开发,从而促进技术创新和产品价值的提升。而鸿蒙操作系统(HarmonyOS)作为商业发行版,则可以为各种终端设备提供更加高效和智能的操作体验,为智能化设备之间的互联互通提供技术支持,使人们能够更好地享受数字化、智能化时代带来的便利。鸿蒙和开源鸿蒙系统©NXROBO20235开源鸿蒙通过模块化实现操作系统给功能解耦合,不同设备可实现弹性部署。OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统>子系统>组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,KernelAbstractLayer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。开源鸿蒙(OpenHarmony)是鸿蒙操作系统(HarmonyOS)的开源版本。开源版本的推出,意味着开发人员可以更加自由地对鸿蒙进行二次开发,从而促进技术创新和产品价值的提升。而鸿蒙操作系统(HarmonyOS)作为商业发行版,则可以为各种终端设备提供更加高效和智能的操作体验,为智能化设备之间的互联互通提供技术支持,使人们能够更好地享受数字化、智能化时代带来的便利。开源鸿蒙系统的基本架构©NXROBO20236开源鸿蒙系统的基本架构©NXROBO202371内核层内核层包含了内核子系统和驱动子系统。其中,LiteOS是华为针对物联网设备发布的轻量级操作系统,其内核也为微内核,最小存储容量仅为6KB。驱动子系统包含了鸿蒙操作系统驱动框架(HarmonyOSDriverFoundation,HDF)。HDF为多种不同的硬件提供了统一的访问接口。2系统服务层与框架层系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集横跨了系统服务层和框架层,为应用层程序提供了API。其中,系统基本能力子系统集最为重要,主要包含了4个部分:(1)方舟多语言运行时子系统:方舟编译体系包含方舟编译器和方舟多语言运行时子系统。(2)分布式框架:分布式软总线、分布式数据管理、分布式任务调度为鸿蒙分布式操作系统提供系统服务层基础,为分布式应用运行、调度、迁移操作提供基础能力。(3)用户程序框架、UI框架、Ability框架:这一部分构建了应用程序的主要框架模型,为应用程序的界面开发、Ability能力开发等提供API基础。(4)公共基础库子系统等重要子系统:除了公共基础库子系统以外,多模输入子系统、图形子系统、安全子系统和AI子系统均属于重要的基础子系统。3应用层应用层是指鸿蒙操作系统中各种系统应用和第三方应用。开发模式简介©NXROBO20238通常在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的VisualStudioCode进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译。因此,需要使用Ubuntu的编译环境对源码进行编译。在以上的设备开发场景中,可以搭建一套Windows+Ubuntu混合开发的环境,其中使Windows平台的VisualStudioCode可视化界面进行相关操作,通过远程连接的方式对接Ubuntu下,对Ubuntu下的源码进行开发、编译等操作。开源鸿蒙系统的开发环境©NXROBO20239环境要求©NXROBO202310硬件要求Windows工作环境:用于代码编辑,下载程序等。Linux环境:用于代码下载,编译。SPARK-HM-PI开发板USBType-C线软件系统要求Linux编译服务器:Ubuntu16.04及以上64位系统版本,服务器或者虚拟机都可以,建议使用Ubuntu20.04镜像Windows工作台:WindowsXP/Windows7/Windows10/Windows11,需安装VisualStudioCode虚拟机环境搭建©NXROBO2023111.下载Ubuntu20.04镜像:2.下载安装VMwareWorkstationPlayer软件:3.创建新的虚拟机打开VMwareWorkstationPlayer软件,选择“创建新的虚拟机”,在弹出的向导中选择“典型(推荐)”模式,并点击下一步。4.选择Ubuntu20.04镜像在接下来的界面中,选择使用ISO镜像文件安装操作系统。然后点击浏览按钮,找到你下载的Ubuntu20.04ISO镜像文件,并选中它。确定后继续。5.设置虚拟机的名称和存储位置。虚拟机环境搭建©NXROBO202312虚拟机环境搭建©NXROBO2023136.设置磁盘容量大小,建议不少于30GB。7.自定义硬件配置可根据需要配置,完成虚拟机创建8.启动虚拟机,并按照提示进行安装操作系统的过程即可虚拟机环境搭建©NXROBO202314Ubuntu开发环境搭建©NXROBO202315软件要求开发板需要的工具如下表所示。开发工具用途SCons3.0.4+编译构建工具python模块:setuptools、kconfiglib、pycryptodome、six、ecdsa编译构建工具gcc
riscv32编译构建工具gn编译构建工具ninja编译构建工具说明如果没有Ubuntu系统,可在Windows系统中通过虚拟机方式搭建Ubuntu系统,具体请参考Ubuntu系统安装指导。Ubuntu开发环境搭建©NXROBO2023161将UbuntuShell环境修改为bash1)执行如下命令,确认输出结果为/bin/sh->bash。如果不是,请根据步骤2,将shell修改为bash。2)打开终端工具,执行如下命令,输入密码,然后选择
No,将Ubuntushell由dash修改为bash。$ls-l/bin/sh$sudodpkg-reconfiguredashUbuntu开发环境搭建©NXROBO2023172安装远程SSH服务1)在Ubuntu系统中,打开终端工具,执行如下命令安装SSH服务。2)执行如下命令,启动SSH服务。$sudoapt-getinstallopenssh-server$sudosystemctlstartssh---说明如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本后(例如:sudoapt-getinstallopenssh-client=1:8.2p1-4),再重新执行该命令安装openssh-server。*执行如下命令,启动SSH服务。Ubuntu开发环境搭建©NXROBO2023182安装远程SSH服务3)执行如下命令,安装网络查询工具,通过ifconfig获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境记录下这里的IP地址,后面远程连接需要用到。$sudoaptinstallnet-tools$ifconfigUbuntu开发环境搭建©NXROBO2023193安装编译工具1)安装Scons$sudoaptinstallscons运行如下命令,安装SCons安装包。运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。$scons-vSCons安装成功界面,版本要求3.0.4以上Ubuntu开发环境搭建©NXROBO2023203安装编译工具2)安装python环境及模块$cd/usr/bin$sudormpythonpython需使用python3.7以上版本,以python3.8为例,Ubuntu20.04会默认装python3.8。首先需要将"/usr/bin"下的python删掉。输入python--version查看python版本。$sudoln-s/usr/bin/python3.8python若提示无法删除'python':没有那个文件或目录,说明原来就没有python这个文件夹,无须处理此问题,继续下一步操作需要将回显路径链接到"/usr/bin/python"Ubuntu开发环境搭建©NXROBO202321①
运行如下命令,安装python模块setuptools。$pip3installsetuptools若遇到Nomodulenamedpip,运行如下命令安装pip:sudoaptinstallpython3-pip$sudopip3installpycryptodome②安装GUImenuconfig工具(Kconfiglib),建议安装Kconfiglib13.2.0+版本,这里选择命令行方式安装:$sudopip3installkconfiglib③
安装pycryptodome,任选如下一种方式。安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。④安装six$sudopip3installsix--upgrade--ignore-installedsix⑤安装ecdsa$sudopip3installecdsaUbuntu开发环境搭建©NXROBO2023223)安装gcc_riscv32(WLAN模组类编译工具链。下载以下交叉编译工具链:$tar-xvfgcc_riscv32-linux-7.3.0.tar.gz-C~将压缩包解压到根目录:设置环境变量:vim~/.bashrc提示没有vim就可以执行sudoaptinstallvim安装vim将以下命令拷贝到.bashrc文件的最后一行:exportPATH=~/gcc_riscv32/bin:$PATH生效环境变量:source~/.bashrcShell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。$riscv32-unknown-elf-gcc-vUbuntu开发环境搭建©NXROBO2023234)安装gn打开Linux编译服务器终端。gn工具位于源码application/NXROBO/SPARK-HM-PI/tools目录下跳转到该目录下解压gn安装包至~/gn路径下:tar-xvfgn.1523.tar-C~设置环境变量:vim~/.bashrc将以下命令拷贝到.bashrc文件的最后一行exportPATH=~/gn:$PATH生效环境变量:source~/.bashrc5)安装ninja打开Linux编译服务器终端ninja工具工具位于源码application/NXROBO/SPARK-HM-PI/tools目录下解压ninja安装包至~/ninja路径下:tar-xvfninja.1.9.0.tar-C~设置环境变量:vim~/.bashrc"将以下命令拷贝到.bashrc文件的最后一行:exportPATH=~/ninja:$PATH生效环境变量:source~/.bashrcUbuntu开发环境搭建©NXROBO202324开发工具要求开发工具用途获取VisualStudioCode代码编辑工具,通过remote-ssh插件远程连接LinuxMobaXterm连接Linux服务器或者串口调试工具CH341SER.EXEUSB转串口驱动Hiburn开发板烧录工具Ubuntu开发环境搭建©NXROBO202325配置Windows远程访问Ubuntu环境注意以下操作都是在linux服务器虚拟机开启的情况下进行的,并且确保Ubuntu系统与Window在同一网络下,需准备之前通过ifconfig得到的Ubuntu系统的IP地址。1.安装remote-ssh插件Ubuntu开发环境搭建©NXROBO2023262.打开远程资源管理器,添加远程计算机3.在弹出的SSH连接命令输入框中输入“sshusername@ip_address”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的帐号。Ubuntu开发环境搭建©NXROBO2023274.在弹出的输入框中,选择SSHconfiguration文件,选择默认的第一选项即可。5.在SSHTARGETS中,找到远程计算机,打开远程计算机。Ubuntu开发环境搭建©NXROBO2023286.点击完会弹出新的界面,在弹出的输入框中,选择Linux,然后在选择Continue,然后输入登录远程计算机的密码,连接远程计算机。Ubuntu开发环境搭建©NXROBO2023297.连接成功后,等待在远程计算机.vscode-server文件夹下自动安装插件,安装完成后,根据界面提示在Windows系统下重新加载VisualStudioCode,连接后左下角显示远程连接计算机的IP地址。2.从0到1搭建ROS环境-Noetic注意!ROSNoeticNinjemys
支持的环境UbuntuFocalFossa(20.04LTS)C++14Boost1.71LispSBCL1.4.16Python3.8TestingagainstPython3.7isrecommendedforcompatibilitywithDebianBuster.CMake3.16.3BuildSystemSupport:catkinrosbuild©NXROBO202231使用软件库安装ROSNoetic打开
你可以看到如下的网页截图:32©NXROBO2022使用软件库安装ROSNoeticROS的安装说明可以在开始(GettingStarted)部分的安装(Install)选项卡中找到。安装提供了两种方式:1)直接安装编译好的软件包;2)从源代码安装,自己编译;建议选第一种方式,除非你是一个专业用户,想进行自定义安装,甚至想修改它的底层代码。在此,介绍ROS安装的第一种方式。33©NXROBO2022配置Ubuntu软件库在本节中,你将学习安装ROSnoetic的步骤。这个过程基于官方安装页面的内容讲述。我们假设你理解Ubuntu软件库(repository)的含义,并且知道如何管理它。如果你有任何疑问。在开始安装之前,需要首先配置软件库,为此需要先把软件库属性设为restricted、universe、multiverse。为了检查你的Ubuntu版本是否支持这些软件库,请单击打开桌面左面的Ubuntu软件中心(UbuntuSoftwareCenter),如下图所示。34©NXROBO2022配置Ubuntu软件库点击Software&Updates图标,你将会看到以下接口,你要保证各个选项与下图中一致。(选择合适的国家的服务器下载源软件):35©NXROBO2022通常情况下,这些选项都是默认选中的,因此这一步骤不会遇到什么问题。配置Ubuntu软件库36©NXROBO2022添加软件库到sources.list文件中并设置密钥让你的计算机接受来自的软件:设置密钥,确保安装包是完整、安全可靠的:37©NXROBO2022现在准备开始安装ROS。在开始之前最好先升级一下软件,避免错误的库版本或软件版本产生各种问题。输入以下命令升级该软件:$sudoaptupdate安装ROS38©NXROBO2022安装ROSROS非常大,相关功能包非常多,根据不同用途,提供了三种安装方式:1、完全版安装
最简单的安装方式(并且是推荐的安装方式,但你需要足够大的硬盘空间)就是桌面完全安装(desktop-full)。这将安装ROS、rqt工具箱、rviz可视化环境(3D)、通用机器人库、2D(如stage)和3D(如gazebo)仿真环境、导航工功能包集(移动、定位、地图绘制、机械臂控制),以及其他感知库,如视觉、激光雷达和RGBD摄像头(深度摄像头):39$sudoaptinstallros-noetic-full©NXROBO20222、桌面版安装
如果你没有足够的硬盘空间,或更喜欢安装特定部分的功能包集,那么第一次安装可以仅安装桌面安装档,包括ROS、rqt工具箱、rviz和其他通用机器人库。之后在需要的时候,再安装其他功能包集(使用apt命令并查找ros-noetic-*功能包集):
$sudoaptinstallros-noetic-desktop安装ROS40©NXROBO20223、基础版安装
如果你只是想尝试一下,请安装ROS-base。ROS-base通常直接安装在机器人上,尤其是机器人没有屏幕和人机界面,只能TTY远程登录的情况下。它只安装ROS的编译和通信包,而没有任何的GUI工具。在BeagleBoneBlack(BBB)中,你将使用下面命令:$sudoaptinstallros-noetic-ros-base安装ROS41©NXROBO2022若安装过程中没有报错,那么恭喜你!说明你已经成功安装了ROS!原理上,你已经可以使用ROS相关的功能了。但为了方便使用ROS相应的可执行程序或命令,即为了让系统知道可执行或二进制文件以及其他命令的位置,通常需要进行环境变量的设置。具体在终端运行如下脚本:如果你安装了多个ROS版本,可将上面的noetic替换成你想要使用的版本。注意:每个需要使用ROS命令的终端,都需要手动运行上面的脚本。$source/opt/ros/noetic/setup.bash配置环境42©NXROBO2022.bashrc文件在用户的home文件夹下(/home/USERNAME/.bashrc)。每次使用者打开终端,这个档会加载命令行或终端的配置。所以你可以添加命令或进行配置以方便用户使用。出于这个原因,我们将在.bashrc档结束时添加脚本,以避免我们每次打开一个新终端时都要重复输入命令。我们用下面命令:如果要使配置生效,你必须使用下面的命令去执行这个档,或关闭当前终端,打开另一个新终端:$echo"source/opt/ros/noetic/setup.bash">>~/.bashrc配置环境43$source~/.bashrc©NXROBO2022一些用户需要在他们的系统中安装不止一个ROS的发行版。由于每次调用脚本都会覆盖系统当前配置,所以~/.bashrc只能设置你正在使用的那一个版本的setup.bash。为了实现在几个发行版之间切换,你需要调用不同的setup.bash脚本。例如,在.bashrc档下面可能有这么几行代码:…source/opt/ros/indigo/setup.bashsource/opt/ros/jade/setup.bashsource/opt/ros/kinetic/setup.bashsource/opt/ros/melodic/setup.bashsource/opt/ros/noetic/setup.bash配置环境44©NXROBO2022在这种情况下,ROSNoetic版本将被执行。所以你必须确保将要运行的版本是档中的最后一个,建议只导入单独一个setup.bash。如果你想通过终端检查使用的版本,可以非常简单地使用以下命令:配置环境45$echo$ROS_DISTRO©NXROBO2022这就完成了!你已经在你的系统完成了一个完整的ROS系统安装。可以通过以下命令启动ROSMaster测试系统是否已安装成功:完成安装46$roscore©NXROBO2022如果一切正常,你会在终端中看到以下内容。测试安装环境47©NXROBO2022额外功能包安装
无论你选择哪一个选项进行安装,你都可以独立安装特定的ROS功能包集(将PACKAGE替换成给定功能包集的名称):安装ROS指定功能包48$sudoaptinstallros-noetic-PACKAGE©NXROBO2022到目前为止,你已经安装了运行核心ROS包所需的内容。为了创建和管理自己的ROS工作区,有各种各样的工具和需求。例如:rosinstall是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多ROS包的源树。要安装这个工具和其他构建ROS包的依赖项,请运行:安装rosinstall49$sudoaptinstallpython3-rosdeppython3-rosinstallpython3-rosinstall-generatorpython3-wstoolbuild-essential©NXROBO2022在使用ROS之前,必须先安装和初始化rosdep命令行工具。这可以使你轻松地安装库和编译源代码时的系统依赖,来运行在ROS中的一些核心组件。你必须安装完ROS后再使用rosdep,因为它是一个独立的工具。现在rosdep默认安装在ROS中。你可以使用下面的命令安装和初始化rosdep:$sudoaptinstallpython3-rosdep$sudorosdepinit$rosdepupdate初始化rosdep50©NXROBO20223.创建工作空间课程介绍课程目的:理解工作空间及功能包掌握工作空间创建方法掌握功能包创建方法所需基础:具备UbuntuLinux基础知识52©NXROBO2022课程内容ROS的编译构建系统简介ROS编程的一般流程工作空间的创建及其结构介绍多个工作空间的覆盖(overlay)功能包的创建及其结构介绍package.xml和Cmakelists.txt文件规则53©NXROBO2022ROS的编译构建系统Catkin:官方推荐的ROS编译构建系统,是原ROS编译构建系统rosbuild的继承者。catkin通过综合CMake宏和Python脚本在CMake正常工作流程之前实现一些功能操作。(Drypackages)Rosbuild
:过时的编译构建系统,不建议使用。但目前官方还在支持以保证早期功能包工作。(Wetpackages)54©NXROBO2022回顾:ROS的文件系统(catkin)55©NXROBO2022创建工程空间创建自己的ROS包在包目录下创建***.cpp或.py源代码文件若*.cpp,则修改CMakeLists.txt文件编译ROS编程的一般流程√本课讲解√本课讲解56©NXROBO2022Catkin工作空间创建设置环境变量创建命令构建$source/opt/ros/noetic/setup.bash$mkdir-p~/catkin_ws/src
$cd~/catkin_ws/src&catkin_init_workspace$cd~/catkin_ws/
$catkin_make57©NXROBO2022Catkin工作空间结构58©NXROBO2022Catkin工作空间结构源码空间src存放功能包的所有源码文件,编译构建时就从这个目录寻找功能包。其CMakeLists.txt档,链接到\opt\ros\distro\catkin\cmake\toplevel.cmake文件。构建空间build存放编译构建过程中的中间档。开发空间devel存构建好的可执行程序和运行库,可由CATKIN_DEVEL_PREFIX变量重新设定,但目录的选择要求必须满足子目录没有功能包。安装空间install是功能包的安装目录,可由CATKIN_INSALL_PREFIX变量重新设定。因为新建工作空间,所以默认的install目录并未创建,执行以下命令创建。59$catkin_makeinstall©NXROBO2022环境变量设置通过setup.xxxshell脚本引入在~/.bashrc文件中添加source命令环境变量查看$source/opt/ros/noetic/setup.bash$env|grepros60©NXROBO2022工作空间的overlayROS环境变量61©NXROBO2022Catkin工作空间overlayOverlayROS系统目录$source/opt/ros/noetic/setup.bash
$env|grepros
$mkdir-p~/catkin_ws/src
$cd~/catkin_ws/src;catkin_init_workspace
$cd~/catkin_ws;catkin_make
$source~/catkin_ws/devel/setup.bash
$env|grepros62©NXROBO2022Catkin工作空间overlay63©NXROBO2022Catkin工作空间overlayCatkin工作区之间overlay$mkdir-p~/catkin_ws_2/src
$cd~/catkin_ws_2/src;catkin_init_workspace
$cd~/catkin_ws_2;catkin_make
$source~/catkin_ws_2/devel/setup.bash
$env|grepros64©NXROBO2022Catkin工作空间overlay65©NXROBO2022创建ROS功能包catkin_create_pkg命令行工具创建新的功能包:此命令的格式包括功能包的名称和依赖项;通常依赖项包括std_msgs、rospy和roscpp。功能包命名规则:只允许使用小写字母、数字和底线;首字符必须是小写字母示例:66$cd~/catkin_ws/src$catkin_create_pkg[package_name][depend1][depend2][depend3]©NXROBO2022$cd~/catkin_ws/src$catkin_create_pkgbeginner_tutorialsstd_msgsrospyroscpp创建Catkin功能包67©NXROBO2022Catkin功能包配置文件package.xml,范本文件:/usr/lib/python3/dist-packages/catkin_pkg/templates/package.xml.inCMakeLists.txt,范本文件:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南省中考历史真题(原卷版)
- 2026年物流行业工作总结及计划
- 2026年国际课程数字化教材的版权保护与开发
- 2026年秋季呼吸道疾病预防知识海报
- 2026年医疗器械内审员远程办公与数字化审核能力培养
- 2025陕西省中考历史真题(原卷版)
- 2026年转基因食品营养与安全评价
- 2026年跨境直邮进口清关与国内派送
- 2026年商业综合体二次装修施工安全监管要点
- 上海立达学院《安装工程结构与施工》2025-2026学年第一学期期末试卷(B卷)
- 2026广东东莞市城市管理和综合执法局招聘编外聘用人员6人备考题库及答案详解(真题汇编)
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 中考语文复习专题训练-丁立梅作品阅读训练
- 甲状腺功能减退
- 【炒股必看】股票基础学习-实战篇、股票入门、股票基础知识、股市入门、炒股、股市、股市入门基础知识
- 浙江省安全台账
- 油封内夹圈的工艺分析及模具设计
- 《环境规划与管理》第十二章 产品层面的环境管理
- 于焕新老师阳光心态与情绪压力管理讲义
- YY/T 1757-2021医用冷冻保存箱
- 平台资金存管-课后考试附答案
评论
0/150
提交评论