系统烧写工具--MfgTool

news2024/10/7 6:37:56

系统烧写工具--MfgTool

  • 1 介绍
    • 1.1 概述
    • 1.2 UUU 特性
    • 1.3 UUU 功能
    • 1.4 UUU 命令
    • 1.5 MFGTools 功能
  • 2 MFGTools 目录结构及说明
    • 2.1 MFGTools 目录结构
      • 重要文件
        • 烧写自己系统
    • 2.2 说明
    • 2.3 分析配置文件
      • 2.3.1 UiCfg.ini
      • 2.3.2 cfg.ini
      • 2.3.3 ucl2.xml
  • 3 MfgTool 工作流程
  • 4 烧录流程
    • 4.1 烧录流程图
    • 4.2 使用 MfgTool 更新系统的流程
      • 1 设置拨码开关
      • 2 使用 USB 线连接PC机与板子
      • 3 启动 MfgTool
      • 4 识别板子
      • 5 烧录【先烧媒介镜像,再烧目标镜像】
      • 6 烧录完成
  • 补充
    • HID设备
    • USB OTG
    • mksdcard
  • 参考

1 介绍

1.1 概述

uuu(Universal Update Utility,通用更新实用程序)是 Freescale/NXP I.MX 芯片系统部署工具,这是 MFGTools(又名 MFGTools v3)的演变。
uuu 由原来的Linux版本和Windows版本发展而来。该项目不仅支持Linux、Windows操作系统,还尝试兼容MacOS,旨在提供一个真正的跨平台解决方案。

1.2 UUU 特性

  • 真正的跨平台。Linux、Windows、MacOS(尚未测试)
  • 多设备程序支持
  • 守护进程模式支持
  • 依赖性很少(仅 libusb、zlibc、libbz2)
  • 固件(uboot/kernel)使用 WCID 在 Windows 端自动加载 winusb 驱动程序。Windows7 用户需要从https://zadig.akeo.ie/安装 winusb 驱动程序 ,Windows10 将自动安装该驱动程序。

1.3 UUU 功能

  • 固件升级:对NXP I.MX系列芯片进行固件(如u-boot、内核)的在线更新。
  • 设备调试:实时监测设备状态,方便进行设备初始化和故障恢复。
  • 批量部署:在生产环境中,uuu可作为批量生产设备固件的工具,提升效率。

1.4 UUU 命令

命令描述
uuu u-boot.imxDownload u-boot.imx via HID device
通过 HID 设备下载 u-boot.imx
uuu list.uuRun all the commands in list.uu
运行 list.uu 中的所有命令
uuu -sEnter shell mode. Input command.
进入 shell 模式。输入命令。
uuu -v u-boot.imxverbose mode
详细模式
uuu -d u-boot.imxOnce it detects the attachment of a known device, download boot.imx.
u-boot.imx can be replaced, new file will be download once board reset.
Do not unplug the SD card, write to the SD card, nor plug in a SD card when debugging uboot.
一旦检测到已知设备的连接,下载 boot.imx。
u-boot.imx 可以替换,板子重置后将下载新文件。
调试 uboot 时,不要拔出 SD 卡,写入 SD 卡,或插入 SD 卡。
uuu -b emmc u-boot.imxwrite u-boot.imx to emmc boot partition. u-boot.imx need enable fastboot
将 u-boot.imx 写入 emmc 启动分区。u-boot.imx 需要启用 fastboot。
uuu -b emmc_all wic.zstdecompress wic.zst file and download the whole image into emmc
解压 wic.zst 文件,并将整个镜像下载到 emmc。

安装: ubuntu 22.04,‘apt-get install uuu’

1.5 MFGTools 功能

  • 可以用来升级 Linux,也可以升级 Android;
  • 允许单独刷写某一系统分区,如 Android 的 boot.img;
  • 支持独立刷写 SPINOR、Nand、eMMC 等:
  • 支持多通道刷写,可作为量产工具;

2 MFGTools 目录结构及说明

2.1 MFGTools 目录结构

.
+--- cfg.ini
+--- cfg.ini.bak
+--- Document
|   +--- Eclipse Plugin and mfgtoolcli
|   |   +--- mfgtoolcli-readme
|   |   +--- User_Guide.docx
|   +--- V2
|   |   +--- Manufacturing Tool V2 Factory Operation manual.docx
|   |   +--- Manufacturing Tool V2 Linux or Android Firmware Development Guide V2.docx
|   |   +--- Manufacturing Tool V2 Quick Start Guide.docx
|   |   +--- Manufacturing Tool V2 Release Notes.docx
|   |   +--- Manufacturing Tool V2 UCL User Guide.docx
|   |   +--- Manufacturing Tool V2 UTP Introduction.docx
|   |   +--- Manufacturing Tool V2 Work Flow.docx
+--- Drivers
|   +--- iMX_BulkIO_Driver
|   |   +--- amd64
|   |   |   +--- imxusb.sys
|   |   |   +--- WdfCoInstaller01009.dll
|   |   +--- i386
|   |   |   +--- imxusb.sys
|   |   |   +--- WdfCoInstaller01009.dll
|   |   +--- imxusb.cat
|   |   +--- imxusb.inf
|   |   +--- imxusb.x64.cat
+--- libMfgToolLib.so
+--- linux-cvbs.sh
+--- linux-runvbs.sh
+--- linux-ver-usage
+--- MfgTool.log
+--- mfgtool2-mx6qdl-advantech.vbs
+--- mfgtool2-mx6qdl-c-sabresd-emmc.vbs
+--- MfgTool2.exe
+--- mfgtoolcli
+--- MfgToolLib.dll
+--- MfgToolLibLog.txt
+--- Profiles
|   +--- Linux
|   |   +--- OS Firmware
|   |   |   +--- advantech_backups
|   |   |   |   +--- imx6q-c-sabresd.dtb
|   |   |   |   +--- imx6q-rom3420-a1.dtb
|   |   |   |   +--- initramfs.cpio.gz.uboot
|   |   |   |   +--- u-boot-0x26800000.bin
|   |   |   |   +--- u-boot-0x26800000.bin.crc
|   |   |   |   +--- u-boot.bin
|   |   |   |   +--- u-boot.imx
|   |   |   |   +--- uImage-imx6q-rom3420.dtb
|   |   |   |   +--- zImage
|   |   |   |   +--- zImage_utp
|   |   |   +--- files
|   |   |   |   +--- .gitignore
|   |   |   |   +--- okmx6-c
|   |   |   |   |   +--- imx6dl-c-sabresd.dtb
|   |   |   |   |   +--- imx6q-c-sabresd.dtb
|   |   |   |   |   +--- logo.bmp
|   |   |   |   |   +--- rootfs.tar.bz2
|   |   |   |   |   +--- u-boot-6dl-2g.imx
|   |   |   |   |   +--- u-boot-6dl.imx
|   |   |   |   |   +--- u-boot-6q-2g.imx
|   |   |   |   |   +--- u-boot-6q.imx
|   |   |   |   |   +--- zImage
|   |   |   +--- firmware
|   |   |   |   +--- fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot
|   |   |   |   +--- u-boot-imx6dlcsabresd_sd.imx
|   |   |   |   +--- u-boot-imx6dls2sabresd_sd.imx
|   |   |   |   +--- u-boot-imx6dls3sabresd_sd.imx
|   |   |   |   +--- u-boot-imx6qcsabresd_sd.imx
|   |   |   |   +--- u-boot-imx6qs2sabresd_sd.imx
|   |   |   |   +--- u-boot-imx6qs3sabresd_sd.imx
|   |   |   |   +--- zImage
|   |   |   |   +--- zImage-imx6dl-c-sabresd.dtb
|   |   |   |   +--- zImage-imx6dl-s2-sabresd.dtb
|   |   |   |   +--- zImage-imx6dl-s3-sabresd.dtb
|   |   |   |   +--- zImage-imx6q-c-sabresd.dtb
|   |   |   |   +--- zImage-imx6q-s2-sabresd.dtb
|   |   |   |   +--- zImage-imx6q-s3-sabresd.dtb
|   |   |   +--- mksdcard-android-f2fs.sh.tar
|   |   |   +--- mksdcard-android.sh.tar
|   |   |   +--- mksdcard-brillo.sh.tar
|   |   |   +--- mksdcard.sh
|   |   |   +--- mksdcard.sh.tar
|   |   |   +--- mksdcard.shok
|   |   |   +--- mksdcard.sh_forlinx
|   |   |   +--- mksdcard.sh_gai
|   |   |   +--- mksdcard_xinsong.sh.tar
|   |   |   +--- qspi-header.sh.tar
|   |   |   +--- ucl2.xml
|   |   +--- player.ini
+--- UICfg.ini
+--- Utils
|   +--- cfimager
|   |   +--- cfimager.exe
|   |   +--- Readme.txt
|   +--- sb_loader
|   |   +--- sb_loader.exe
|   |   +--- UserGuide.txt

重要文件

files、firmware、ucl2.xml
在这里插入图片描述

文件描述
zImageNXP官方I.MX6ULLEVK开发板的Linux镜像文件
u-boot-imx6ull14x14evk emmc.imxNXP官方I.MX6ULLEVK开发板的uboot文件
zlmage-imx6ul1-14x14-evk-emmc.dtbNXP官方I.MX6ULLEVK开发板的设备树
rootfs_nogpu.tar.bz2NXP官方I.MX6ULLEVK开发板的根文件系统,no gpu
脚本文件功能
mfgtool2-yocto-mx-evk-emmc.vbsNXP官方evk评估板的eMMC烧写脚本
mfgtool2-yocto-mx-evk-nand.vbsNXP官方evk评估板的Nand Flash烧写脚本
烧写自己系统

如果要烧写自己的系统,就需要用自己编译出来的 zImage、u-boot.imx、*.dtb 和 rootfs 这4个文件,同时文件名字改为表中的名字。

2.2 说明

  • MfgTool2.exe 是一个可执行文件,用于打开烧写工具。
  • 通常不直接运行 MfgTool2.exe,而是通过运行 VBS 脚本文件来启动。
  • cfg.ini、UiCfg.ini 和 ucl2.xml 是配置文件。
  • Profile 文件夹内定义了存放镜像文件和配置文件的不同目录层级。
  • 镜像文件 分为两种:
    (1)第一种作为媒介用途,在 Yocto 下包括 “uboot”、“dtb” 和 “zimage”。
    (2)第二种是实际烧录到 eMMC、Nand Flash 或 sdCard 的镜像文件。
  • 对于该项目:
    (1)媒介镜像存放于 “firmware” 目录。
    (2)实际烧写的镜像存放于 “files” 目录。
  • 需要两种镜像的原因是 MfgTool 的烧写原理是先烧录媒介镜像到 DDR,然后启动媒介系统,通过该系统把目标镜像固化到存储设备中。
  • 烧录过程分为两个部分:
    (1)第一部分:烧录前的准备工作。
    (2)第二部分:MfgTool 开始烧录到结束烧录的过程,严格根据 ucl2.xml 文件进行。

2.3 分析配置文件

2.3.1 UiCfg.ini

[UICfg]
PortMgrDlg=1

2.3.2 cfg.ini

[profiles]
chip = Linux        // 目标平台,对应 Profile/Linux 目录,可根据自己的需求定义 profile

[platform]
board = SabreSD     // 板子型号为“SabreSD”。

[LIST]
name = eMMC         // 存储设备为“eMMC”。

[variable]
board = sabresd     // 引用模式是 %board%,要和平台的名字一样,否则可能会出错
mmc = 0             // 引用模式是 %mmc%
sxuboot=sabresd
sxdtb=sdb
7duboot=sabresd
7ddtb=sdb
6uluboot=14x14ddr3arm2
6uldtb=14x14-ddr3-arm2
6ulldtb=14x14-ddr3-arm2
ldo=
plus=
lite=l
initramfs=fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot
seek = 1
sxnor=qspi2
7dnor=qspi1
6ulnor=qspi1
nor_part=0

2.3.3 ucl2.xml

<!--
* Copyright (C) 2012, Freescale Semiconductor, Inc. All Rights Reserved.
* The CFG element contains a list of recognized usb devices.
*  DEV elements provide a name, class, vid and pid for each device.
*
* Each LIST element contains a list of update instructions.
*  "Install" - Erase media and install firmware.
*  "Update" - Update firmware only.
*
* Each CMD element contains one update instruction of attribute type.
*  "pull" - Does UtpRead(body, file) transaction.
*  "push" - Does UtpWrite(body, file) transaction.
*  "drop" - Does UtpCommand(body) then waits for device to disconnect.
*  "boot" - Finds configured device, forces it to "body" device and downloads "file".
*  "find" - Waits for "timeout" seconds for the "body" device to connect.
*  "show" - Parse and show device info in "file".
-->


<UCL>
  <CFG>
    <STATE name="BootStrap" dev="MX6SL" vid="15A2" pid="0063"/>
    <STATE name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/>
    <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>
    <STATE name="BootStrap" dev="MX6SX" vid="15A2" pid="0071"/>
    <STATE name="BootStrap" dev="MX6UL" vid="15A2" pid="007D"/>
    <STATE name="BootStrap" dev="MX7D" vid="15A2" pid="0076"/>
    <STATE name="Updater"   dev="MSC" vid="066F" pid="37FF"/>

  </CFG>

  <LIST name="eMMC_c" desc="Choose eMMC as media">
	<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot-imx6q%plus%%board%_sd.imx" ifdev="MX6Q">Loading U-boot</CMD>
	<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot-imx6dl%plus%%board%_sd.imx" ifdev="MX6D">Loading U-boot</CMD>

	<CMD state="BootStrap" type="load" file="firmware/zImage" address="0x12000000"
		loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q MX6D">Loading Kernel.</CMD>

	<CMD state="BootStrap" type="load" file="firmware/%initramfs%" address="0x12C00000"
		loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q MX6D">Loading Initramfs.</CMD>

	<CMD state="BootStrap" type="load" file="firmware/zImage-imx6q-%plus%-%board%.dtb" address="0x18000000"
		loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q">Loading device tree.</CMD>
	<CMD state="BootStrap" type="load" file="firmware/zImage-imx6dl-%plus%-%board%.dtb" address="0x18000000"
		loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6D">Loading device tree.</CMD>

	<CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>


	<!-- create partition -->
	<!-- 创建分区,详见 mksdcard.sh 脚本 -->
	<CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>
	<CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
	<CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk%mmc%"> Partitioning...</CMD>

	<!-- burn uboot -->
	<!-- 烧写 uboot -->

	<!-- create fat partition -->
	<!-- 创建 FAT 分区 -->

	<!-- burn zImage -->
	<!-- 烧写 zImage 到 FAT 分区 -->

	<!-- burn logo -->
	<!-- 烧写 logo.bmp 到 FAT 分区 -->

	<!-- burn dtb -->
	<!-- 烧写 dtb 到 FAT 分区 -->

	<!-- burn rootfs -->
	<!-- 烧写 rootfs 到 第二 分区 -->
	
	<!-- burn test tools -->
	<!-- 烧写 测试工具 到相应目录下 -->
	
	<!-- format system and user data -->
	<!-- 格式化系统和用户数据 -->

	<CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>

  </LIST>

</UCL>

uc2.xml 是系统升级时的操作文件,MfgTool会根据文件里面 list 的内容进行相应的升级。文件以如下一行为界线,可以分为上阶段和下阶段。

<CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>

上阶段是把“媒介镜像”烧录到DDR里面并启动;
下阶段是烧录“file”目录里面的文件到emmc上。

如上烧录过程:

分区 –> 烧写uboot –> 烧写zImage –> 烧写dtb –> 烧写rootfs –> 测试工具 –> 格式化系统和用户数据

3 MfgTool 工作流程

MfgTool 是先通过 USB OTG 先将 uboot、kernel 和.dtb(设备树)这是三个文件下载到开发板的 DDR 中,注意不需要下载 rootfs。就相当于直接在开发板的 DDR上启动 Linux 系统,等 Linux 系统启动以后再向 EMMC 中烧写完整的系统,包括 uboot、kernel、.dtb(设备树)和 rootfs,因此 MfgTool 工作过程主要分两个阶段:

(1)上阶段是把“媒介镜像”烧录到DDR里面并启动;
(2)下阶段是烧录“file”目录里面的文件到emmc上。

文件描述
zImageNXP官方I.MX6ULLEVK开发板的Linux镜像文件
u-boot-imx6ull14x14evk emmc.imxNXP官方I.MX6ULLEVK开发板的uboot文件
zlmage-imx6ul1-14x14-evk-emmc.dtbNXP官方I.MX6ULLEVK开发板的设备树

4 烧录流程

4.1 烧录流程图

MfgTool2 >> 媒介镜像 >> 目标镜像

在这里插入图片描述

4.2 使用 MfgTool 更新系统的流程

1 设置拨码开关

根据板子硬件设计决定。

2 使用 USB 线连接PC机与板子

注意需要驱动的话直接在安装包里找一下。
在这里插入图片描述

3 启动 MfgTool

进入 MfgTool 目录,双击执行 mfgtool2-yocto-mx-evk-nand.vbs 脚本

4 识别板子

一切正常的话,在设备管理器或 MfgTool 界面可以看到已识别板子
在这里插入图片描述

5 烧录【先烧媒介镜像,再烧目标镜像】

点击 MfgTool 界面上的 Start 按钮,MfgTool 就开始自动更新系统至板载存储设备;
在这里插入图片描述

6 烧录完成

更新成功后底部的总进度条显示为绿色,若失败则为红色,MfgTool.log 文件会记录错误提示信息。
在这里插入图片描述

补充

HID设备

HID设备,全称为Human Interface Devices。USB等都是。

HMI是人机交互的简称,是Human Machine Interface的缩写。

USB OTG

USB On-The-Go(简称USB OTG)是一种在嵌入式系统中广泛使用的功能,它允许设备在主机模式和设备模式之间切换,实现主机和设备之间的直接通信。

USB OTG的核心概念是支持设备在不同模式下操作。在主机模式下,设备充当主机的角色,可以连接其他USB设备(如键盘、鼠标、存储设备等)。在设备模式下,设备充当普通的USB设备,可以被主机识别和控制。

mksdcard

以使用 mksdcard 工具创建 FAT32 磁盘映像。

参考

1、github–mfgtools
2、MYS-6ULX-IOT 开发板测评——使用MfgTool更新系统
3、MfgTool系统烧写(imx6ull)
4、NXP官方MfgTools工具使用
5、推荐使用:uuu(通用更新工具),mfgtools 3.0 - 强大的跨平台固件部署利器
6、mksdcard
7、i.MX6ULL嵌入式Linux开发6-系统烧写到eMMC与遇到的坑!
8、野火–烧录NXP官方固件
9、飞凌–NXP MFGTool软件烧录原理
10、Linux学习笔记—使用MfgTool工具烧写官方系统(一)
11、系统烧写(MfgTool烧写工具)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1849589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql--安装跳过验证修改密码安全加固

安装mysql 配置mysql的yum源 [rootVM-0-14-rockylinux ~]# tee /etc/yum.repos.d/mysql.repo << EOF > [MYSQL] > namemysql > baseurlhttps://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64 > gpgcheck0 > EOF yum安装mysq…

python项目(课设)——飞机大战小游戏项目源码(pygame)

主程序 import pygame from plane_sprites import * class PlaneGame: """ 游戏类 """ def __init__(self): print("游戏初始化") # 初始化字体模块 pygame.font.init() # 创建游戏…

eclipse中svn从分支合并到主干及冲突解决

1、将分支先commit&#xff0c;然后再update&#xff0c;然后再clean一下&#xff0c;将项目多余的target都清理掉。 2、将branches切换到trunk 3、工程上右键-》Team-》合并&#xff08;或Merge&#xff09; 4、默认选项&#xff0c;点击Next 5、有未提交的改动&#xff0c;…

兴顺物流管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;驾驶员管理&#xff0c;物流资讯管理&#xff0c;车辆管理&#xff0c;基础数据管理 员工账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;物流资讯管理&…

尚品汇-(三)

maven之packaging标签 &#xff08;1&#xff09;项目创建父模块 首先设置 下Maven Maven&#xff1a;仓库地址&#xff1a;这里是腾讯云仓库 作为父模块&#xff0c;src没用&#xff0c;干掉src 这里我们是Maven创建的项目&#xff0c;想要项目变成SpringBoot的项目&#xf…

Mybatis 系列全解(1)——全网免费最细最全,手把手教,学完就可做项目!

Mybatis 系列全解&#xff08;1&#xff09; 1. 第一个小程序2. CURD 增删改查3. 模糊查询4. 配置解析4.1 核心配置文件4.2 环境配置4.3 属性4.4 类型别名4.5 设置4.6 映射器 mappers 1. 第一个小程序 1&#xff09;创建一个数据库&#xff0c;一个表&#xff0c;填入一些数据…

uni app 树状结构数据展示

树状数据展示&#xff0c;可以点击item 将点击数据给父组件 &#xff0c;满足自己需求。不喜勿喷&#xff0c;很简单可以根据自己需求改哈&#xff0c;不要问&#xff0c;点赞收藏就好。其实可以和上一篇文章uni app 自定义 带popup弹窗的input组件-CSDN博客结合使用&#xff…

LabVIEW项目管理中如何平衡成本、时间和质量

在LabVIEW项目管理中&#xff0c;平衡成本、时间和质量是实现项目成功的关键。通过制定详细的项目计划、合理分配资源、严格控制进度、进行质量保证和灵活应对变化&#xff0c;项目管理者可以有效地协调这三者的关系&#xff0c;确保项目按时、按质、按预算完成。 1. 制定详细…

Reid系列论文学习——换装Reid

今天要学习的有关Reid的论文是2019年提出的一篇名为&#xff1a;Beyond Scalar Neuron: Adopting Vector-Neuron Capsules for Long-Term Person Re-Identification. 论文链接&#xff1a;https://opus.lib.uts.edu.au/bitstream/10453/137156/4/Binder1.pdf Code链接&#x…

搜索python包的说明

当我发现bug时&#xff0c;就怀疑是sns包的版本问题了&#xff08;原代码是原作者以前成功运行的代码&#xff09;&#xff0c;于是直接到网上搜&#xff0c;找到对应的说明文档 根据该示例代码进行改写&#xff1a; 达成目的。

Elasticsearch 数据提取 - 最适合这项工作的工具是什么?

作者&#xff1a;来自 Elastic Josh Asres 了解在 Elasticsearch 中为你的搜索用例提取数据的所有不同方式。 对于搜索用例&#xff0c;高效采集和处理来自各种来源的数据的能力至关重要。无论你处理的是 SQL 数据库、CRM 还是任何自定义数据源&#xff0c;选择正确的数据采集…

2024年全国青少信息素养大赛python编程复赛集训第八天编程题分享

整理资料解析答案非常不容易,感谢各位大佬给个点赞和分享吧,谢谢 今天题目较难:适合初中组 大家如果不想阅读前边的比赛内容介绍,可以直接跳过:拉到底部看集训题目 (一)比赛内容: 【小学组】 1.了解输入与输出的概念,掌握使用基本输入输出和简单运算 为主的标准函…

进程、线程的区别

进程、线程的关系 开工厂生产手机&#xff0c;制作一条生产线&#xff0c;这个生产线上有很多的器件以及材料。一条生产线就是一个进程。 只有生产线是不够的&#xff0c;使用找五个工人来进行生产&#xff0c;这个工人能够利用这些材料最终一步步的将手机做出来&#xff0c;这…

上位机图像处理和嵌入式模块部署(mcu之静态库生成和使用)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多同学做了很长时间的mcu和keil开发&#xff0c;都认为keil工程中必须包含所有的源代码&#xff0c;其实这是不对的。如果有一些代码我们不希望别…

C#.net6.0+Vue+Ant-Design智慧医院手术麻醉系统源码 手术麻醉软件信息化管理系统 麻醉文书祥解

C#.net6.0VueAnt-Design智慧医院手术麻醉系统源码 手术麻醉软件信息化管理系统 麻醉文书祥解 医护人员通过手麻信息系统可以进行手术的预约申请、受理、安排&#xff0c;从门诊医生下医嘱到发起手术申请、护士长审核通过&#xff0c;均实现了全流程信息化管理&#xff0c;大大…

内容安全复习 4 - 深度生成模型

文章目录 概述经典算法自回归模型&#xff08;Autoregressive model&#xff09;变分自编码器&#xff08;VAE&#xff09;生成对抗网络&#xff08;GAN&#xff09;扩散模型&#xff08;Diffusion model&#xff09;总结 应用 概述 深度生成模型是一类使用深度学习技术构建的…

【第25章】Vue实战篇之用户登出

文章目录 前言一、后端代码二、前端代码1.接口调用2.界面代码3.事件代码 三、效果总结 前言 这里来演示用户登出。 一、后端代码 /*** 登出* param token token* return Result*/RequestMapping("logout")public Result logout(RequestHeader("Authorization&…

【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 引言一、Python简介1.1 历史背景1.2 设计哲学1.3 语言特性1.4 应用场景1.5 为什么选择Python 二、Python语言基础2.1 注释规则2.1.1 单行注释2.1.2 多行注释2.1.3 文件编码声明注释 2.2 代码缩进2.3 编码规范2.3.1 命名规范…

镜像发布至dockerHub

1、login 没有账号的话去注册一个 https://hub.docker.com docker login 输入账号密码和账号2、修改镜像名格式 可以直接招我的修改 格式为你的 hub名/镜像名 3、推送

2D图形引擎Cairo例子

代码; #include<cairo.h> int main() {cairo_surface_t *surface;cairo_t *cr;surfacecairo_image_surface_create(CAIRO_FORMAT_ARGB32,320,240);crcairo_create(surface);cairo_set_source_rgb(cr,0,1,0);cairo_rectangle(cr,10,10,200,200);cairo_fill(cr);cairo_mov…