Vitis统一软件平台将Xilinx各种软件统一,即支持Vitis嵌入式软件开发流程,又支持Vitis应用软件加速开发流程。本文介绍Vitis嵌入式软件中的linux应用程序开发流程。

1 Vitis软件开发工作流程

嵌入式应用开发流程:

  • 从Vivado导出xsa
  • 将xsa导入vitis软件并创建platform
  • 创建domain
  • 在Vitis IDE调试应用
  • 系统级调试
  • 生成boot images

Vitis软件platform工作空间结构,有两种Project类型:

Platform Project和System project

Platform Project:提供硬件信息和软件运行环境。可通过导入XSA或存在的Platform建立。几个System project可以建立在同一个Platform Project 上,共享硬件和软件软件。

System project:将同时运行在器件上的应用进行组合。两个独立运行在同一个处理器上的应用不能在一个System
project里。一个workspace可以包含多个System
project。

Workspace:当打开Vitis软件平台时,创建workspace,用来存储工程数据。

Platform:是硬件部件(XSA)和软件部件(BSP,FSB等)的集合。

Application(Software Project):一个Software Project包含一个或多个源文件,和必要的头文件,编译和生成二进制输出文件(ELF)。System project可以包含多个application project。每一个software project必须有一个相应的domain。

XSA:包含硬件信息,例如处理器配置信息,外设连接信息和器件初始化代码。当创建Platform Project时需要提供XSA。

Domain:Domain时一个板级支持包(BSP)或者包含驱动的运行系统(OS),在这上面构建应用。创建好的软件镜像包含部分Xilinx库。可以在Domain中创建多个应用。Domain可以时一个处理器,也可以是多个。

Flow:软件开发与应用加速开发工作流程有一些差异。目前有三种设计流程:

  • 嵌入式
  • 嵌入式加速
  • 数据中心加速

Zynq Ultrascale+ MPSoC器件在Vitis开发:

Linux 应用可以通过Linux Domain的sysroot编译和链接库。

system projects 在MPSoC 芯片不同时间运行。在一个 system project上的应用运行在相同的时间。

2 使用Vitis创建Linux应用程序

2.1 硬件平台与Linux镜像

在使用Vitis创建Linux应用程序之前需要完成如下两步:

1、使用Vivado创建硬件平台;

2、使用Petalinux构建Linux镜像。

以上两部分请参考之前的文章基于ZYNQ MPSOC XCZU3CG的百度Edgeboard FZU3 构建linux系统,在Ubuntu18.04上安装Vivado Vitis Petalinux 2020.1。

本次设计依然是在Edgeboard FZU3上完成。

构建后Linux镜像后,进入到Petalinux工程下的images/linux文件夹,之下如下指令:

cd images/linux

petalinux-build - -sdk

petalinux-package - -sysroot

完成上述过程后,开始使用Vitis创建Linux应用程序。

2.2 Vitis创建Linux应用程序

完成上述过程后,开始使用Vitis创建Linux应用程序。在Vitis下创建Linux应用程序分三步:

1、使用XSA创建Platform
Project;

2、在Platform Project加入Linux Domain;

3、创建Linux Application Project。

使用XSA创建Platform
Project

新建文件夹fzu3_vitis,打开vitis软件将Workspace设置成fzu3_vitis。

新建Platform Project,点击Create Plateform
Project。

工程名输入fzu3,选择Create from hardware specification(XSA)


选择XSA文件路径,在Operating system中指定linux,点击finish完成Platform
Project创建。

在Platform Project加入Linux Domain

在加入Linux Domain之前,在fzu3_vitis文件夹中:

新建文件夹image,将Petalinux工程image/linux文件夹下的image.ub、boot.scr 和 rootfs.cpio.gz 拷贝到image。

新建文件夹boot,将system.bit、bl31.elf、uboot.elf、zynqmp_fsbl、pmufw.elf 文件复制到boot。

在boot中,新建文件linux.bif

the_ROM_image:
{[fsbl_config] a53_x64[bootloader] <zynqmp_fsbl.elf>[pmufw_image] <pmufw.elf>[destination_device=pl] <bitstream>[destination_cpu=a53-0,exception_level=el-3, trustzone] <bl31.elf>[destination_cpu=a53-0, exception_level=el-2]<u-boot.elf>
}

在vitis工程中进行如下设置:

如下设Sysroot Directory路径为Petalinux工程下aarch64-xilinx-linux文件夹。

设置完成后,Build Project编译工程。

创建Linux Application Project

在Vitis中点击New->Application Project,

点击next

选择刚新建的Platform fzu3

应用工程名设置成hello

Domain在Platform中已经设置好,直接next


选择Linux Hello World进行测试,完成Linux应用程序创建。

编译hello_system

在hello_system文件夹下Debug/sd_card文件夹中生成如下文件。

3 测试

将sd_card中的文件拷贝到SD卡,单板启动,运行./hello.elf,输出Hello_World。

这里写自定义目录标题

    • 1 Vitis软件开发工作流程
    • 2 使用Vitis创建Linux应用程序
  • 欢迎使用Markdown编辑器
    • 新的改变
    • 功能快捷键
    • 合理的创建标题,有助于目录的生成
    • 如何改变文本的样式
    • 插入链接与图片
    • 如何插入一段漂亮的代码片
    • 生成一个适合你的列表
    • 创建一个表格
      • 设定内容居中、居左、居右
      • SmartyPants
    • 创建一个自定义列表
    • 如何创建一个注脚
    • 注释也是必不可少的
    • KaTeX数学公式
    • 新的甘特图功能,丰富你的文章
    • UML 图表
    • FLowchart流程图
    • 导出与导入
      • 导出
      • 导入

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片:

带尺寸的图片:

居中的图片:

居中并且带尺寸的图片:

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目

    • 项目

      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to-HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过欧拉积分

Γ(z)=∫0∞tz−1e−tdt.\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞​tz−1e−tdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06Mon 13Mon 20已完成 进行中 计划一 计划二 现有任务Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

#mermaid-svg-crr6RunpKL1tuNQi .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-crr6RunpKL1tuNQi .label text{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .node rect,#mermaid-svg-crr6RunpKL1tuNQi .node circle,#mermaid-svg-crr6RunpKL1tuNQi .node ellipse,#mermaid-svg-crr6RunpKL1tuNQi .node polygon,#mermaid-svg-crr6RunpKL1tuNQi .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-crr6RunpKL1tuNQi .node .label{text-align:center;fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .node.clickable{cursor:pointer}#mermaid-svg-crr6RunpKL1tuNQi .arrowheadPath{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-crr6RunpKL1tuNQi .flowchart-link{stroke:#333;fill:none}#mermaid-svg-crr6RunpKL1tuNQi .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-crr6RunpKL1tuNQi .edgeLabel rect{opacity:0.9}#mermaid-svg-crr6RunpKL1tuNQi .edgeLabel span{color:#333}#mermaid-svg-crr6RunpKL1tuNQi .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-crr6RunpKL1tuNQi .cluster text{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-crr6RunpKL1tuNQi .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-crr6RunpKL1tuNQi text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-crr6RunpKL1tuNQi .actor-line{stroke:grey}#mermaid-svg-crr6RunpKL1tuNQi .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-crr6RunpKL1tuNQi .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-crr6RunpKL1tuNQi #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-crr6RunpKL1tuNQi .sequenceNumber{fill:#fff}#mermaid-svg-crr6RunpKL1tuNQi #sequencenumber{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi #crosshead path{fill:#333;stroke:#333}#mermaid-svg-crr6RunpKL1tuNQi .messageText{fill:#333;stroke:#333}#mermaid-svg-crr6RunpKL1tuNQi .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-crr6RunpKL1tuNQi .labelText,#mermaid-svg-crr6RunpKL1tuNQi .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-crr6RunpKL1tuNQi .loopText,#mermaid-svg-crr6RunpKL1tuNQi .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-crr6RunpKL1tuNQi .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-crr6RunpKL1tuNQi .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-crr6RunpKL1tuNQi .noteText,#mermaid-svg-crr6RunpKL1tuNQi .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-crr6RunpKL1tuNQi .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-crr6RunpKL1tuNQi .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-crr6RunpKL1tuNQi .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-crr6RunpKL1tuNQi .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi .section{stroke:none;opacity:0.2}#mermaid-svg-crr6RunpKL1tuNQi .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-crr6RunpKL1tuNQi .section2{fill:#fff400}#mermaid-svg-crr6RunpKL1tuNQi .section1,#mermaid-svg-crr6RunpKL1tuNQi .section3{fill:#fff;opacity:0.2}#mermaid-svg-crr6RunpKL1tuNQi .sectionTitle0{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .sectionTitle1{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .sectionTitle2{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .sectionTitle3{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-crr6RunpKL1tuNQi .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi .grid path{stroke-width:0}#mermaid-svg-crr6RunpKL1tuNQi .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-crr6RunpKL1tuNQi .task{stroke-width:2}#mermaid-svg-crr6RunpKL1tuNQi .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi .taskText:not([font-size]){font-size:11px}#mermaid-svg-crr6RunpKL1tuNQi .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-crr6RunpKL1tuNQi .task.clickable{cursor:pointer}#mermaid-svg-crr6RunpKL1tuNQi .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-crr6RunpKL1tuNQi .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-crr6RunpKL1tuNQi .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-crr6RunpKL1tuNQi .taskText0,#mermaid-svg-crr6RunpKL1tuNQi .taskText1,#mermaid-svg-crr6RunpKL1tuNQi .taskText2,#mermaid-svg-crr6RunpKL1tuNQi .taskText3{fill:#fff}#mermaid-svg-crr6RunpKL1tuNQi .task0,#mermaid-svg-crr6RunpKL1tuNQi .task1,#mermaid-svg-crr6RunpKL1tuNQi .task2,#mermaid-svg-crr6RunpKL1tuNQi .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-crr6RunpKL1tuNQi .taskTextOutside0,#mermaid-svg-crr6RunpKL1tuNQi .taskTextOutside2{fill:#000}#mermaid-svg-crr6RunpKL1tuNQi .taskTextOutside1,#mermaid-svg-crr6RunpKL1tuNQi .taskTextOutside3{fill:#000}#mermaid-svg-crr6RunpKL1tuNQi .active0,#mermaid-svg-crr6RunpKL1tuNQi .active1,#mermaid-svg-crr6RunpKL1tuNQi .active2,#mermaid-svg-crr6RunpKL1tuNQi .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-crr6RunpKL1tuNQi .activeText0,#mermaid-svg-crr6RunpKL1tuNQi .activeText1,#mermaid-svg-crr6RunpKL1tuNQi .activeText2,#mermaid-svg-crr6RunpKL1tuNQi .activeText3{fill:#000 !important}#mermaid-svg-crr6RunpKL1tuNQi .done0,#mermaid-svg-crr6RunpKL1tuNQi .done1,#mermaid-svg-crr6RunpKL1tuNQi .done2,#mermaid-svg-crr6RunpKL1tuNQi .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-crr6RunpKL1tuNQi .doneText0,#mermaid-svg-crr6RunpKL1tuNQi .doneText1,#mermaid-svg-crr6RunpKL1tuNQi .doneText2,#mermaid-svg-crr6RunpKL1tuNQi .doneText3{fill:#000 !important}#mermaid-svg-crr6RunpKL1tuNQi .crit0,#mermaid-svg-crr6RunpKL1tuNQi .crit1,#mermaid-svg-crr6RunpKL1tuNQi .crit2,#mermaid-svg-crr6RunpKL1tuNQi .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-crr6RunpKL1tuNQi .activeCrit0,#mermaid-svg-crr6RunpKL1tuNQi .activeCrit1,#mermaid-svg-crr6RunpKL1tuNQi .activeCrit2,#mermaid-svg-crr6RunpKL1tuNQi .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-crr6RunpKL1tuNQi .doneCrit0,#mermaid-svg-crr6RunpKL1tuNQi .doneCrit1,#mermaid-svg-crr6RunpKL1tuNQi .doneCrit2,#mermaid-svg-crr6RunpKL1tuNQi .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-crr6RunpKL1tuNQi .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-crr6RunpKL1tuNQi .milestoneText{font-style:italic}#mermaid-svg-crr6RunpKL1tuNQi .doneCritText0,#mermaid-svg-crr6RunpKL1tuNQi .doneCritText1,#mermaid-svg-crr6RunpKL1tuNQi .doneCritText2,#mermaid-svg-crr6RunpKL1tuNQi .doneCritText3{fill:#000 !important}#mermaid-svg-crr6RunpKL1tuNQi .activeCritText0,#mermaid-svg-crr6RunpKL1tuNQi .activeCritText1,#mermaid-svg-crr6RunpKL1tuNQi .activeCritText2,#mermaid-svg-crr6RunpKL1tuNQi .activeCritText3{fill:#000 !important}#mermaid-svg-crr6RunpKL1tuNQi .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-crr6RunpKL1tuNQi g.classGroup text .title{font-weight:bolder}#mermaid-svg-crr6RunpKL1tuNQi g.clickable{cursor:pointer}#mermaid-svg-crr6RunpKL1tuNQi g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-crr6RunpKL1tuNQi g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-crr6RunpKL1tuNQi .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-crr6RunpKL1tuNQi .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-crr6RunpKL1tuNQi .dashed-line{stroke-dasharray:3}#mermaid-svg-crr6RunpKL1tuNQi #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi .commit-id,#mermaid-svg-crr6RunpKL1tuNQi .commit-msg,#mermaid-svg-crr6RunpKL1tuNQi .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-crr6RunpKL1tuNQi g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-crr6RunpKL1tuNQi g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-crr6RunpKL1tuNQi g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-crr6RunpKL1tuNQi .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-crr6RunpKL1tuNQi .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-crr6RunpKL1tuNQi .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-crr6RunpKL1tuNQi .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-crr6RunpKL1tuNQi .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-crr6RunpKL1tuNQi .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-crr6RunpKL1tuNQi .edgeLabel text{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-crr6RunpKL1tuNQi .node circle.state-start{fill:black;stroke:black}#mermaid-svg-crr6RunpKL1tuNQi .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-crr6RunpKL1tuNQi #statediagram-barbEnd{fill:#9370db}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-state .divider{stroke:#9370db}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-crr6RunpKL1tuNQi .note-edge{stroke-dasharray:5}#mermaid-svg-crr6RunpKL1tuNQi .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-crr6RunpKL1tuNQi .error-icon{fill:#522}#mermaid-svg-crr6RunpKL1tuNQi .error-text{fill:#522;stroke:#522}#mermaid-svg-crr6RunpKL1tuNQi .edge-thickness-normal{stroke-width:2px}#mermaid-svg-crr6RunpKL1tuNQi .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-crr6RunpKL1tuNQi .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-crr6RunpKL1tuNQi .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-crr6RunpKL1tuNQi .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-crr6RunpKL1tuNQi .marker{fill:#333}#mermaid-svg-crr6RunpKL1tuNQi .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-crr6RunpKL1tuNQi {color: rgba(0, 0, 0, 0.75);font: ;}张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间, 文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

这将产生一个流程图。:

#mermaid-svg-roOP6ilq6nAAtlJD .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-roOP6ilq6nAAtlJD .label text{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .node rect,#mermaid-svg-roOP6ilq6nAAtlJD .node circle,#mermaid-svg-roOP6ilq6nAAtlJD .node ellipse,#mermaid-svg-roOP6ilq6nAAtlJD .node polygon,#mermaid-svg-roOP6ilq6nAAtlJD .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-roOP6ilq6nAAtlJD .node .label{text-align:center;fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .node.clickable{cursor:pointer}#mermaid-svg-roOP6ilq6nAAtlJD .arrowheadPath{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-roOP6ilq6nAAtlJD .flowchart-link{stroke:#333;fill:none}#mermaid-svg-roOP6ilq6nAAtlJD .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-roOP6ilq6nAAtlJD .edgeLabel rect{opacity:0.9}#mermaid-svg-roOP6ilq6nAAtlJD .edgeLabel span{color:#333}#mermaid-svg-roOP6ilq6nAAtlJD .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-roOP6ilq6nAAtlJD .cluster text{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-roOP6ilq6nAAtlJD .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-roOP6ilq6nAAtlJD text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-roOP6ilq6nAAtlJD .actor-line{stroke:grey}#mermaid-svg-roOP6ilq6nAAtlJD .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-roOP6ilq6nAAtlJD .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-roOP6ilq6nAAtlJD #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-roOP6ilq6nAAtlJD .sequenceNumber{fill:#fff}#mermaid-svg-roOP6ilq6nAAtlJD #sequencenumber{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD #crosshead path{fill:#333;stroke:#333}#mermaid-svg-roOP6ilq6nAAtlJD .messageText{fill:#333;stroke:#333}#mermaid-svg-roOP6ilq6nAAtlJD .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-roOP6ilq6nAAtlJD .labelText,#mermaid-svg-roOP6ilq6nAAtlJD .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-roOP6ilq6nAAtlJD .loopText,#mermaid-svg-roOP6ilq6nAAtlJD .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-roOP6ilq6nAAtlJD .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-roOP6ilq6nAAtlJD .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-roOP6ilq6nAAtlJD .noteText,#mermaid-svg-roOP6ilq6nAAtlJD .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-roOP6ilq6nAAtlJD .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-roOP6ilq6nAAtlJD .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-roOP6ilq6nAAtlJD .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-roOP6ilq6nAAtlJD .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD .section{stroke:none;opacity:0.2}#mermaid-svg-roOP6ilq6nAAtlJD .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-roOP6ilq6nAAtlJD .section2{fill:#fff400}#mermaid-svg-roOP6ilq6nAAtlJD .section1,#mermaid-svg-roOP6ilq6nAAtlJD .section3{fill:#fff;opacity:0.2}#mermaid-svg-roOP6ilq6nAAtlJD .sectionTitle0{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .sectionTitle1{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .sectionTitle2{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .sectionTitle3{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-roOP6ilq6nAAtlJD .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD .grid path{stroke-width:0}#mermaid-svg-roOP6ilq6nAAtlJD .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-roOP6ilq6nAAtlJD .task{stroke-width:2}#mermaid-svg-roOP6ilq6nAAtlJD .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD .taskText:not([font-size]){font-size:11px}#mermaid-svg-roOP6ilq6nAAtlJD .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-roOP6ilq6nAAtlJD .task.clickable{cursor:pointer}#mermaid-svg-roOP6ilq6nAAtlJD .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-roOP6ilq6nAAtlJD .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-roOP6ilq6nAAtlJD .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-roOP6ilq6nAAtlJD .taskText0,#mermaid-svg-roOP6ilq6nAAtlJD .taskText1,#mermaid-svg-roOP6ilq6nAAtlJD .taskText2,#mermaid-svg-roOP6ilq6nAAtlJD .taskText3{fill:#fff}#mermaid-svg-roOP6ilq6nAAtlJD .task0,#mermaid-svg-roOP6ilq6nAAtlJD .task1,#mermaid-svg-roOP6ilq6nAAtlJD .task2,#mermaid-svg-roOP6ilq6nAAtlJD .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-roOP6ilq6nAAtlJD .taskTextOutside0,#mermaid-svg-roOP6ilq6nAAtlJD .taskTextOutside2{fill:#000}#mermaid-svg-roOP6ilq6nAAtlJD .taskTextOutside1,#mermaid-svg-roOP6ilq6nAAtlJD .taskTextOutside3{fill:#000}#mermaid-svg-roOP6ilq6nAAtlJD .active0,#mermaid-svg-roOP6ilq6nAAtlJD .active1,#mermaid-svg-roOP6ilq6nAAtlJD .active2,#mermaid-svg-roOP6ilq6nAAtlJD .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-roOP6ilq6nAAtlJD .activeText0,#mermaid-svg-roOP6ilq6nAAtlJD .activeText1,#mermaid-svg-roOP6ilq6nAAtlJD .activeText2,#mermaid-svg-roOP6ilq6nAAtlJD .activeText3{fill:#000 !important}#mermaid-svg-roOP6ilq6nAAtlJD .done0,#mermaid-svg-roOP6ilq6nAAtlJD .done1,#mermaid-svg-roOP6ilq6nAAtlJD .done2,#mermaid-svg-roOP6ilq6nAAtlJD .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-roOP6ilq6nAAtlJD .doneText0,#mermaid-svg-roOP6ilq6nAAtlJD .doneText1,#mermaid-svg-roOP6ilq6nAAtlJD .doneText2,#mermaid-svg-roOP6ilq6nAAtlJD .doneText3{fill:#000 !important}#mermaid-svg-roOP6ilq6nAAtlJD .crit0,#mermaid-svg-roOP6ilq6nAAtlJD .crit1,#mermaid-svg-roOP6ilq6nAAtlJD .crit2,#mermaid-svg-roOP6ilq6nAAtlJD .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-roOP6ilq6nAAtlJD .activeCrit0,#mermaid-svg-roOP6ilq6nAAtlJD .activeCrit1,#mermaid-svg-roOP6ilq6nAAtlJD .activeCrit2,#mermaid-svg-roOP6ilq6nAAtlJD .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-roOP6ilq6nAAtlJD .doneCrit0,#mermaid-svg-roOP6ilq6nAAtlJD .doneCrit1,#mermaid-svg-roOP6ilq6nAAtlJD .doneCrit2,#mermaid-svg-roOP6ilq6nAAtlJD .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-roOP6ilq6nAAtlJD .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-roOP6ilq6nAAtlJD .milestoneText{font-style:italic}#mermaid-svg-roOP6ilq6nAAtlJD .doneCritText0,#mermaid-svg-roOP6ilq6nAAtlJD .doneCritText1,#mermaid-svg-roOP6ilq6nAAtlJD .doneCritText2,#mermaid-svg-roOP6ilq6nAAtlJD .doneCritText3{fill:#000 !important}#mermaid-svg-roOP6ilq6nAAtlJD .activeCritText0,#mermaid-svg-roOP6ilq6nAAtlJD .activeCritText1,#mermaid-svg-roOP6ilq6nAAtlJD .activeCritText2,#mermaid-svg-roOP6ilq6nAAtlJD .activeCritText3{fill:#000 !important}#mermaid-svg-roOP6ilq6nAAtlJD .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-roOP6ilq6nAAtlJD g.classGroup text .title{font-weight:bolder}#mermaid-svg-roOP6ilq6nAAtlJD g.clickable{cursor:pointer}#mermaid-svg-roOP6ilq6nAAtlJD g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-roOP6ilq6nAAtlJD g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-roOP6ilq6nAAtlJD .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-roOP6ilq6nAAtlJD .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-roOP6ilq6nAAtlJD .dashed-line{stroke-dasharray:3}#mermaid-svg-roOP6ilq6nAAtlJD #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD .commit-id,#mermaid-svg-roOP6ilq6nAAtlJD .commit-msg,#mermaid-svg-roOP6ilq6nAAtlJD .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-roOP6ilq6nAAtlJD g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-roOP6ilq6nAAtlJD g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-roOP6ilq6nAAtlJD g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-roOP6ilq6nAAtlJD .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-roOP6ilq6nAAtlJD .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-roOP6ilq6nAAtlJD .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-roOP6ilq6nAAtlJD .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-roOP6ilq6nAAtlJD .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-roOP6ilq6nAAtlJD .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-roOP6ilq6nAAtlJD .edgeLabel text{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-roOP6ilq6nAAtlJD .node circle.state-start{fill:black;stroke:black}#mermaid-svg-roOP6ilq6nAAtlJD .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-roOP6ilq6nAAtlJD #statediagram-barbEnd{fill:#9370db}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-state .divider{stroke:#9370db}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-roOP6ilq6nAAtlJD .note-edge{stroke-dasharray:5}#mermaid-svg-roOP6ilq6nAAtlJD .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-roOP6ilq6nAAtlJD .error-icon{fill:#522}#mermaid-svg-roOP6ilq6nAAtlJD .error-text{fill:#522;stroke:#522}#mermaid-svg-roOP6ilq6nAAtlJD .edge-thickness-normal{stroke-width:2px}#mermaid-svg-roOP6ilq6nAAtlJD .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-roOP6ilq6nAAtlJD .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-roOP6ilq6nAAtlJD .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-roOP6ilq6nAAtlJD .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-roOP6ilq6nAAtlJD .marker{fill:#333}#mermaid-svg-roOP6ilq6nAAtlJD .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-roOP6ilq6nAAtlJD {color: rgba(0, 0, 0, 0.75);font: ;}

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0开始我的操作确认?结束yesno
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

Vitis下Linux应用程序开发流程相关推荐

  1. 微信小程序开发流程的两种方法科普

    现在微信小程序早已渗透我们日常生活的方方面面,很多商家看到了小程序带来的巨大流量,也想开发一个自己的小程序.所以今天就跟大家科普下微信小程序开发流程,你会发现这个开发过程其实非常简单. 1. 在微信公 ...

  2. 小程序发布上线流程_微信小程序开发流程的两种方法科普

    现在微信小程序早已渗透到我们日常生活的方方面面,很多商家看到了小程序带来的巨大流量,也想开发一个自己的小程序.所以今天就跟大家科普下微信小程序开发流程,你会发现这个开发过程其实非常简单. 1. 在微信 ...

  3. Linux应用程序开发 基础知识

     Linux应用程序开发 本文讲述了linux应用程序开发的基本内容.值得学习! Copyright © 2006 本文遵从GNU 的自由文档许可证(Free Documentation Lice ...

  4. 嵌入式Linux应用程序开发视频教程-曹国辉-专题视频课程

    嵌入式Linux应用程序开发视频教程-1834人已学习 课程介绍         本课程是嵌入式研发精英培养计划的核心课程,重点讲解嵌入式Linux应用程序开发核心技术,包括嵌入式Linux开发工具的 ...

  5. linux独立应用程序开发,Linux应用程序开发(一)

    Linux应用程序开发(一)---移植thttpd+Sqlite3+PHP5到arm linux(4) 移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1,主机环境:VMare下Cen ...

  6. 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...

    本节书摘来自异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

  7. 《嵌入式 Linux应用程序开发标准教程(第2版)》——1.1 嵌入式Linux基础

    本节书摘来异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者:华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

  8. 嵌入式linux 添加中断,《嵌入式linux应用程序开发完全手册》中断控制器操作(外部中断)学习笔记...

    <嵌入式linux应用程序开发完全手册>中断控制器操作(外部中断)学习笔记 一.ARM中断体系 当一个"异常"发生时,或者说当收到一个中断触发信号时,ARM9将会自动完 ...

  9. Linux 应用程序开发入门

    Linux 应用程序开发入门 Neo Chen (netkiller) <openunix@163.com> 版权 © 2011, 2012 http://netkiller.github ...

  10. 小程序 cover-view 字体_【企商云】2021年,要知道的9个小程序开发流程清单

    从17年小程序上线后,格外受到市场青睐,从火爆春节的"跳一跳"到商界巨头头条.百度.支付宝等纷纷上线,而20年疫情期间更让小程序成为商家运营法宝,极力转型线上线下.如今距离2021 ...

最新文章

  1. hdu1160FatMouse's Speed(DP)
  2. MOSFET驱动器汇总 : 单个N-CHANNEL,半桥,全桥,3项桥
  3. 【ASP.NET北大青鸟】-总结(二)
  4. python在哪写代码-python的代码写在哪里,怎么样运行python代码
  5. python填写excel-使用Python填写Excel文件的简便方法
  6. BZOJ-1013-球形空间产生器sphere
  7. 微信小程序中显示空格
  8. centOS 安装mysql5.6
  9. 使用Java 8 Lambda清理JUnit Throwable-Tests
  10. mysql取消mvvc机制_MySQL探秘(六):InnoDB一致性非锁定读
  11. bootice 此功能仅在uefi环境下可用_电脑新手必掌握基础知识:BIOS、EFI与UEFI详解!...
  12. TensorFlow2.0正式版安装
  13. pkm是什么意思_2017年的你应该拥有什么样的PKM系统?
  14. MySQL联合查询分页
  15. Drools规则引擎实践直白总结,Java开发教程入门
  16. 同步发电机转子的转动惯量与运动方程(一) 基本物理概念
  17. java 7新特性-TWR(Try-with-resources)
  18. 【关于vue的那些事】vue.runtime.esm.js?2b0e:619
  19. 计算机加法的电路原理及proteus仿真
  20. 日本机器自动化初创企业Cinnamon获天使轮融资

热门文章

  1. aforge 相机标定_C# Aforge设置摄像头视频属性和控制属性
  2. 推荐6本React在线电子版书籍
  3. 1.2 安装与卸载Visual Studio 2018
  4. php本地如何开启websocket遇到的坑
  5. ckplayer html5直播rtmp,实现简单网页rtmp直播:nginx+ckplayer+linux
  6. c语言禁忌搜索算法源代码,禁忌搜索算法CC++源代码.pdf
  7. 【软件开发架构平台】CH2 Spring IoC和Bean管理
  8. 目标检测NMS非极大值抑制及改进
  9. matlab 三对角矩阵 追赶法,追赶法求解三对角方程及其算例.doc
  10. 毛星云opencv7.1.3之sobel算子--失败算法