03_Uboot网络命令与MMC和文件操作命令

news2024/11/25 23:02:25

目录

网络操作命令

ping命令

nfs 命令

tftp 命令

EMMC和SD卡操作命令

mmc info命令

mmc rescan命令

mmc list 命令

mmc dev 命令

mmc part命令

mmc read 命令

mmc write 命令

mmc erase 命令

FAT 格式文件系统操作命令

fatinfo 命令

fatls 命令

fstype 命令

fatload 命令

fatwrite 命令

EXT 格式文件系统操作命令


网络操作命令

uboot是支持网络的,我们在移植uboot的时候一般都要调通网络功能,因为在移植linuxkernel的时候需要使用到uboot的网络功能做调试。uboot支持大量的网络相关命令,比如dhcp、ping、nfs 和 tftpboot,接下来依次学习一下这几个和网络有关的命令。

设置开发板IP地址

注意,网络地址环境变量的设置要根据自己的实际情况,确保Ubuntu主机和开发板的IP地址在同一个网段内,比如我现在的开发板和电脑都在192.168.31.0这个网段内,所以设置开发板的IP地址为192.168.31.131,我的Ubuntu主机的地址为192.168.31.131,因此serverip就192.168.31.131.ethaddr为网络MAC地址,是一个48bit的地址,如果在同一个网段内有多个开发板的话一定要保证每个开发板的ethaddr是不同的,否则通信会有问题!设置好网络相关的环境变量以后就可以使用网络相关命令了

ping命令

开发板的网络能否使用,是否可以和服务器(Ubuntu主机)进行通信,通过ping命令就可以验证,直接ping服务器的IP地址即可,比如我的服务器IP地址为192.168.31.130,命令如下:

ping 192.168.31.130

 

从图30.4.4.2可以看出, 192.168.31.130这个主机存在,说明ping成功, uboot的网络工作正常。

注意!只能在uboot中ping其他的机器,其他机器不能ping uboot,因为uboot 没有对ping命令做处理,如果用其他的机器ping uboot的话会失败!

nfs 命令

nfs(Network File System)网络文件系统,通过nfs可以在计算机之间通过网络来分享资源,比如我们将linux镜像和设备树文件放到Ubuntu中,然后在uboot中使用nfs命令将Ubuntu中的linux镜像和设备树下载到开发板的DRAM中。这样做的目的是为了方便调试linux镜像和设备树,也就是网络调试,通过网络调试是Linux开发中最常用的调试方法。原因是嵌入式linux开发不像单片机开发,可以直接通过JLINK或STLink等仿真器将代码直接烧写到单片机内部的flash中,嵌入式Linux通常是烧写到EMMC、NAND Flash、SPI Flash等外置flash中,但是嵌入式Linux开发也没有MDK, IAR这样的IDE,更没有烧写算法,因此不可能通过点击一个“download”按钮就将固件烧写到外部flash中。虽然半导体厂商一般都会提供一个烧写固件的软件,但是这个软件使用起来比较复杂,这个烧写软件一般用于量产的。其远没有MDK、IAR的一键下载方便,在Linux内核调试阶段,如果用这个烧写软件的话将会非常浪费时间,而这个时候网络调试的优势就显现出来了,可以通过网络将编译好的linux镜像和设备树文件下载到DRAM中,然后就可以直接运行。

我们一般使用uboot中的nfs命令将Ubuntu中的文件下载到开发板的DRAM中,在使用之前需要开启Ubuntu主机的NFS服务,并且要新建一个NFS使用的目录,以后所有要通过NFS访问的文件都需要放到这个NFS目录中。Ubuntu的NFS服务开启uboot中的nfs命令格式如下所示:

nfs [loadAddress] [[hostiPaddr:]bootfilename]

 loadAddress是要保存的DRAM地址, [[hostlPaddr:]bootfilename]是要下载的文件地址。这里我们将正点原子官方编译出来的Linux镜像文件zImage下载到开发板DRAM的0x80800000这个地址处。将文件zImage通过FileZilla发送到Ubuntu 中的NFS 目录下, 比如我的就是放到/home/ygh/linux/nfs这个目录下,完成以后的NFS目录如图所示:

 准备好以后就可以使用nfs命令来将zImage下载到开发板DRAM的0X80800000地址处,命令如下:

nfs 80800000 192.168.31.130:/home/ygh/linux/nfs/zImage

 其中的80800000表示zImage保存地址"192.168.1.253:/home/ygh/linux/nfs/zImage"表示zImage在192.168.31.130这个主机中,路径为/home/ygh/linux/nfs/zImage。下载过程如图所示:

 在图中会以“#”提示下载过程,下载完成以后会提示下载的数据大小,这里下载的 5636216字节(出厂系统在不断的更更新中,因此以实际的zImage大小为准),而zImage的大小就是 6785272字节,如图 所示:

 下载完成以后查看0x80800000地址处的数据,使用命令md.b来查看前0x100个字节的数据,如图所示:

 在使用vscode HexEditor插件来查看zImage,检查一下前面的数据是否和图的一致,结果如图所示:

 

tftp 命令

tftp命令的作用和nfs命令一样,都是用于通过网络下载东西到DRAM中,只是tftp命令使用的 TFTP协议, Ubuntu主机作为TFTP 服务器。因此需要在Ubuntu上搭建TFTP服务器,需要安装tftp-hpa和tftpd-hpa,命令如下:

sudo apt-get install tftp-hpa tftpd-hpa

sudo apt-get install xinetd

 和NFS一样,TFTP也需要一个文件夹来存放文件,在用户目录下新建一个目录,命令如下:

mkdir /home/ygh/linux/tftpboot

chmod 777 /home/zuozhongkai/linux/tftpboot

 这样我就在我的电脑上创建了一个名为tftpboot的目录(文件夹),路径为/home/ygh/linux/tftpboot。注意!我们要给tftpboot文件夹权限,否则的话uboot不能从tftpboot文件夹里面下载文件。

最后配置tftp,安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d目录的话自行创建,然后在里面输入如下内容:

 完了以后启动tfp服务,命令如下:

sudo service tftpd-hpa start

 打开/etc/default/tftpd-hpa文件,将其修改为如下所示内容:

 

TFTP_DIRECTORY就是我们上面创建的tftp文件夹目录,以后我们就将所有需要通过,TFTP传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。

最后输入如下命令,重启tftp服务器:

sudo service tftpd-hpa restart

 tftp服务器已经搭建好了,接下来就是使用了。将zImage镜像文件拷贝到tfpboot文件夹中,并且给予zimage相应的权限,命令如下:

cp zImage /home/ygh/linux/tftpboot/

cd /home/ygh/linux/tftpboot/

chmod 777 zImage

 uboot中的tftp命令格式如下:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

 看起来和nfs命令格式一样的,loadAddress是文件在DRAM中的存放地址,[[hostIPaddr:]bootfilename]是要从Ubuntu中下载的文件。但是和nfs命令的区别在于,tftp命令不需要输入文件在Ubuntu中的完整路径,只需要输入文件名即可。比如我们现在将tftpboot文件夹里面的zImage文件下载到开发板DRAM的0X80800000地址处,命令如下:

tftp 80800000 zImage

 下载过程如图所示:

 从图可以看出, zImage下载成功了,网速为1.1MibB/s,文件大小为5636216字节。同样的,可以使用md.b命令来查看前100个字节的数据是否和图中的相等。有时候使用tftp命令从Ubuntu中下载文件的时候会出现如图所示的错误提示:

 在图中可以看到"TFTPerror: "Permission denied' (0)”这样的错误提示,提示没有权限,出现这个错误一般有两个原因:

1.在Ubuntu中创建tftpboot目录的时候没有给予tftboot相应的权限。

2.tftpboot目录中要下载的文件没有给予相应的权限。

针对上述两个问题,使用命令“chmod 777 xxx”来给予权限,其中“xxx”就是要给予权限的文件或文件夹。

EMMC和SD卡操作命令

uboot支持EMMC和SD卡,因此也要提供EMMC和SD卡的操作命令。一般认为EMMC和 SD卡是同一个东西,所以没有特殊说明统一使用MMC来代指EMMC和SD卡。uboot 中常用于操作MMC设备的命令为“mmc”。mmc是一系列的命令,其后可以跟不同的参数,输入“? mmc”即可查看 mmc 有关的命令,如图所示:

 

mmc info命令

mmc info命令用于输出当前选中的mmc info设备的信息,输入命令“mmc info”即可,如图所示:

从图可以看出,当前选中的MMC设备是SD卡,版本为3.0,容量为29.1GiB(EMMC为32GB),速度为50000000Hz=50MHz, 4位宽的总线。还有一个与mmc info命令相同功能的命令: mmcinfo, "mmc”和"info”之间没有空格。 

mmc rescan命令

mmc rescan命令用于扫描当前开发板上所有的MMC设备,包括EMMC和SD卡,输入"mmc rescan”即可。

mmc list 命令

mme list命令用于来查看当前开发板一共有几个MMC设备,输入"mmc list”,结果如图所示:

 可以看出当前开发板有两个MMC设备: FSL-SDHC:0和FSL-SDHC:1 (eMMC),这是因为我现在用的是EMMC版本的核心板,加上SD卡一共有两个MMC设备, FSL-SDHC:0是SD卡, FSL-SDHC:1(eMMC)是EMMC,。默认会将EMMC设置为当前MMC设备,这就是为什么输入"mme info”查询到的是SD卡设备信息,而不是EMMC。要想查看 EMMC信息,就要使用命令“mme dev”来将EMMC卡设置为当前的MMC设备。

mmc dev 命令

mmc dev命令用于切换当前MMC设备,命令格式如下:

mmc dev [dev] [part]

[dev]用来设置要切换的MMC设备号,[part]是分区号。如果不写分区号的话默认为分区0。使用如下命令切换到SD卡:

mmc dev 1//切换到EMMC,0为SD卡,1为eMMC

从图可以看出,当前选中的MMC设备是EMMC,版本为4.0,容量为7.3GiB(EMMC为8GB),速度为52000000Hz=52MHz, 8位宽的总线。 

mmc part命令

有时候SD卡或者EMMC会有多个分区,可以使用命令"mme part”来查看其分区,比如查看EMMC的分区情况,输入如下命令:

 从图中可以看出,此时EMMC有两个分区,第一个分区起始扇区为20480,长度为262144个扇区;第二个分区起始扇区为282624,长度为14987264个扇区。如果EMMC里面烧写了Linux系统的话, EMMC是有3个分区的,第0个分区存放uboot,第1个分区存放Linux镜像文件和设备树,第2个分区存放根文件系统。但是在图中只有两个分区,那是因为第0个分区没有格式化,所以识别不出来,实际上第0个分区是存在的。

mmc read 命令

mmc read命令用于读取mmc设备的数据,命令格式如下:

mmc read addr blk# cnt

addr是数据读取到DRAM中的地址,blk是要读取的块起始地址(十六进制),一个块是512字节,这里的块和扇区是一个意思,在MMC设备中我们通常说扇区,cnt 是要读取的块数量(十六进制)。比如从EMMC的第 1536(0x600)个块开始,读取16(0x10)个块的数据到DRAM的0X80800000地址处,命令如下:

mmc read 80800000 600 10//读取数据

 

这里我们还看不出来读取是否正确,通过md.b命令查看0x80800000处的数据就行了,查看 16*512=8192(0x2000)个字节的数据,命令如下:

md.b 80800000 2000

 

mmc write 命令

要将数据写到MMC设备里面,可以使用命令"mme write",格式如下:

mmc write addr blk# cnt

addr是要写入MMC中的数据在DRAM中的起始地址, blk是要写入MMC的块起始地址(十六进制), cnt是要写入的块大小,一个块为512字节。我们可以使用命令“mmc write”来升级 uboot,也就是在uboot中更新uboot。这里要用到nfs或者tftp命令,通过nfs或者tfp命令将新的u-boot.bin下载到开发板的DRAM中,然后再使用命令"mmc write"将其写入到MMC设备中。我们就来更新一下SD中的uboot,先查看一下SD卡中的uboot版本号,注意编译时间,输入命令:

Version

 可以看出当前SD卡中的uboot是2020年3月12日15:11:51编译的。我们现在重新编译一下uboot,然后将编译出来的u-boot.imx(u-boot.bin前面加了一些头文件)拷贝到Ubuntu 中的tftpboot目录下。最后使用tftp命令将其下载到0x80800000地址处,命令如下:

tftp 80800000 u-boot.imx

 可以看出, u-boot.imx大小为379904字节, 379904/512=742,所以我们要向SD卡中写入742个块,如果有小数的话就要加1个块。使用命令"mme write”从SD卡分区0第2个块(扇区)开始烧写,一共烧写742(0x2E6)个块,命令如下:

mmc write 80800000 2 2E6

 烧写成功,重启开发板(从SD卡启动),重启以后再输入version来查看版本号,结果如图所示:

从图可以看出,此时的uboot是2020年10月27号11:44:31编译的,说明uboot更新成功。这里我们就学会了如何在uboot中更新uboot了,如果要更新EMMC中的uboot t是一样的。

同理,如果要在uboot中更新EMMC对应的uboot,可以使用如下所示命令:

 

mmc erase 命令

如果要擦除MMC设备的指定块就是用命令"mmc erase”,命令格式如下:

mmc erase blk# cnt

blk为要擦除的起始块,cnt是要擦除的数量。没事不要用mmc erase来擦除MMC设备!!!

FAT 格式文件系统操作命令

有时候需要在uboot中对SD卡或者EMMC中存储的文件进行操作,这时候就要用到文件操作命令,跟文件操作相关的命令有: fatinfo、fatls、fstype、fatload和fatwrite,但是这些文件操作命令只支持FAT格式的文件系统!

fatinfo 命令

fatinfo命令用于查询指定MMC设备分区的文件系统信息,格式如下:

fatinfo <interface> [<dev[:part]>]

interface表示接口,比如mmc, dev是查询的设备号, part是要查询的分区。比如我们要查询EMMC分区1的文件系统信息,命令如下:

fatinfo mmc 1:1

 从上图可以看出,EMMC分区1的文件系统为FAT32格式的。

 

 

fatls 命令

fatls 命令用于查询FAT格式设备的目录和文件信息,命令格式如下:

fatls <interface> [<dev[:part]>] [directory]

interface是要查询的接口,比如mmc, dev是要查询的设备号,part是要查询的分区,directory是要查询的目录。比如查询EMMC分区1中的所有的目录和文件,输入命令:

 fatls mmc 1:1

 从上图可以看出, emmc的分区1中存放着8个文件。

fstype 命令

fstype用于查看MMC设备某个分区的文件系统格式,命令格式如下:

fstype <interface> <dev>:<part>

正点原子EMMC核心板上的EMMC默认有3个分区,查看一下这三个分区的文件系统格式,输入命令:

fstype mmc 1:0

fstype mmc 1:1

fstype mmc 1:2

 

 从上图可以看出,分区0格式未知,因为分区0存放的uboot,并且分区0没有格式化,所以文件系统格式未知。分区1的格式为fat,分区1用于存放linux镜像和设备树。分区 2的格式为 ext4,用于存放Linux的根文件系统(rootfs)

fatload 命令

fatload命令用于将指定的文件读取到DRAM中,命令格式如下:

fatload <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]

interface为接口,比如mmc, dev是设备号, part是分区, addr是保存在DRAM中的起始地址, filename是要读取的文件名字。bytes表示读取多少字节的数据,如果bytes为0或者省略的话表示读取整个文件。pos是要读的文件相对于文件首地址的偏移,如果为0或者省略的话表示从文件首地址开始读取。我们将EMMC分区1中的zImage文件读取到DRAM中的0X80800000地址处,命令如下:

fatload mmc 1:1 80800000 zImage

 从上图可以看出在225ms内读取了6785272个字节的数据,速度为28.8MiB/s,速度是非常快的,因为这是从EMMC里面读取的,而EMMC是8位的,速度肯定会很快的。

fatwrite 命令

注意!uboot默认没有使能fatwrite命令,需要修改板子配置头文件,比如mx6ullevk.h、mx6ull_alientek_emmc.h等等,板子不同,其配置头文件也不同。找到自己开发板对应的配置头文件然后添加如下一行宏定义来使能fatwrite命令:

#define CONFIG FAT WRITE /*使能fatwrite命令*/

fatwirte命令用于将DRAM中的数据写入到MMC设备中,命令格式如下:

fatwrite <interface> <dev[:part]> <addr> <filename> <bytes>

interface为接口,比如mmc, dev是设备号,part是分区,addr是要写入的数据在DRAM中的起始地址,filename是写入的数据文件名字,bytes表示要写入多少字节的数据。我们可以通过fatwrite命令在uboot中更新linux镜像文件和设备树。我们以更新linux镜像文件zImage为例,首先将正点原子IMX6U-ALPHA开发板提供的zImage镜像文件拷贝到Ubuntu中的tftnboot且录下

拷贝完成以后使用命令tftp将zImage下载到DRAM的0X80800000地址处,命令如下:

tftp 80800000 zImage

zImage大小为6785272(0X6788f8)个字节(注意,由于开发板系统在不断的更新中,因此zImage大小不是固定的,一切以实际大小为准),接下来使用命令fatwrite将其写入到EMMC 的分区1中,文件名字为zImage,命令如下:

fatwrite mmc 1:1 80800000 zImage 6788f8

 完成以后使用"fatls”命令查看一下EMMC分区1里面的文件,结果如图所示:

 

EXT 格式文件系统操作命令

uboot有ext2和ext4这两种格式的文件系统的操作命令,常用的就四个命令,分别为:ext2load、ext2ls、ext4load、ext4ls和 ext4write。这些命令的含义和使用与fatload、fatls 和fatwrite一样,只是ext2和ext4都是针对ext文件系统的。比如ext4ls命令,EMMC的分区 2就是ext4格式的,使用ext4ls就可以查询EMMC的分区2中的文件和目录,输入命令:

ext4ls mmc 1:2

 

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

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

相关文章

好的代码风格,如同书法,让你的代码更加漂亮

很多初学者的代码其实都不够“漂亮”&#xff0c;那是因为没有养成好的编码习惯。本篇博客以C语言为例&#xff0c;总结一些好习惯。其实&#xff0c;很多习惯都是肌肉记忆&#xff0c;举个例子&#xff1a;请你写一个程序&#xff0c;输入2个整数并输出它们的和。有些朋友可能…

java中的\t说明

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。希望互相进步谢谢&#xff01;&#xff01; 文章目录 阅读前请看一下&#xff1a;我是…

SQLIntegrityConstraintViolationException: Column ‘create_time‘ cannot be null

概述 在使用MySQL MyBatis时遇到的问题&#xff0c;记录一下。 问题 在测试环境里&#xff0c;往MySQL数据表里插入数据时报错&#xff1a;SQLIntegrityConstraintViolationException: Column create_time cannot be null 表结构字段定义&#xff1a; create_time dateti…

【Canvas入门】从零开始在Canvas上绘制简单的动画

这篇文章是观看HTML5 Canvas Tutorials for Beginners教程做的记录&#xff0c;所以代码和最后的效果比较相似&#xff0c;教程的内容主要关于这四个部分&#xff1a; 创建并设置尺寸添加元素让元素动起来与元素交互 设置Canvas的大小 获取到canvas并设置尺寸为当前窗口的大…

Lesson13 IP协议

IP: 提供一种能力,将数据从A主机送到B主机的能力,但不一定会成功 主机 : 配有 IP 地址 , 但是不进行路由控制的设备 ; 路由器: 即配有 IP 地址 , 又能进行路由控制 ; 节点 : 主机和路由器的统称; 协议头格式 如何封装和解包: 定长报头 自描述字段 如何交付(分用) : 8…

Linux驱动之input输入子系统

输入子系统用于实现Linux系统输入设备&#xff08;鼠标 键盘 触摸屏 游戏杆&#xff09;驱动的一种框架。Linux内核将其中的固定部分放入内核&#xff0c;驱动开发时只需要实现其中的不固定部分&#xff08;主要还是和硬件相关的部分&#xff09;&#xff0c;这和platform设备…

离散数学下--- 代数系统

代数系统 定义&#xff1a; 代数系统是用代数运算构造数学模型的方法。 • 通过构造手段生成&#xff0c;所以也称代数结构 • 代数运算&#xff1a;在集合上建立满足一定规则的运算系统 &#xff08;一&#xff09;二元运算 二元运算的定义 二元运算需要满足的两个条件&a…

【P1】Jmeter 准备工作

文章目录 一、Jmeter 介绍1.1、Jmeter 有什么样功能1.2、Jmeter 与 LoadRunner 比较1.3、常用性能测试工具1.4、性能测试工具如何选型1.5、学习 Jmeter 对 Java 编程的要求 二、Jmeter 软件安装2.1、官网介绍2.2、JDK 安装及环境配置2.3、Jmeter 三种模式2.4、主要配置介绍2.4.…

数据结构——二叉树层序遍历

数据结构——二叉树层序遍历 107. 二叉树的层序遍历 II199. 二叉树的右视图思路&#xff1a; 637. 二叉树的层平均值 107. 二叉树的层序遍历 II 107. 二叉树的层序遍历 II 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节…

心血管疾病预测--逻辑回归实现二分类

一、实现效果 实现心血管疾病的预测准确率70%以上 二、数据集介绍 数据共计70000条&#xff0c;其中心血管疾病患者人数为34979&#xff0c;未患病人数为35021。数据特征属性12个分别为如下所示:生理指标(性别、年龄、体重、身高等)、 医疗检测指标(血压、血糖、胆固醇水平等)…

【社区图书馆】PyTorch高级机器学习实战 读书感想

《PyTorch高级机器学习实战》十大特点 1. 深入全面的内容覆盖&#xff1a; 本书的内容深入而全面&#xff0c;涵盖了深度学习中的多个领域&#xff0c;包括自然语言处理、计算机视觉、强化学习等&#xff0c;并介绍了各种不同的神经网络结构和优化算法。 2. 理论和实践并重&am…

scratch拆礼物游戏 中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析2023年3月

目录 scratch拆礼物游戏 一、题目要求 1、准备工作 2、功能实现 二、案例分析 <

java spring 实现 下载hls(m3u8+ts)实时流并进行合并mp4和压缩

参考连接 链接: java下载m3u8视频&#xff0c;解密并合并ts&#xff08;三&#xff09; 链接: Java 下载 HLS (m3u8) 视频 首先需要了解什么是HLS 链接: HTTP Live Streaming (HLS) - 概念 链接: M3U8是什么 简单理解就是, m3u8文件存放着可供客户端播放TS 片段 简单一点…

吴恩达 Chatgpt prompt 工程--1.Guidelines

Setup #安装 !pip install openai#设置key !export OPENAI_API_KEYsk-... # or #import openai #openai.api_key "sk-..."import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv())openai.api_key os.getenv(OPENAI_A…

Graph Theory(图论)

一、图的定义 图是通过一组边相互连接的顶点的集合。 In this graph, V { A , B , C , D , E } E { AB , AC , BD , CD , DE } 二、图的类型 2.1 Finite Graph A graph consisting of finite number of vertices and edges is called as a finite graph. Null Graph Tri…

github workflow使用docker部署springboot并推送到阿里云镜像仓库

文章目录 1. 建立你的actions2. 工作流脚本2.1 触发事件2.2 密文和执行参数2.3 deploy.sh执行脚本2.4 Dockerfile 3. 阿里云镜像仓库设置 最近想通过github的workflow部署springboot项目&#xff08;CI&#xff09;&#xff0c;网上看了很多文章&#xff0c;都是有这样那样的问…

Design_transformer

磁性元件设计 思路 滤波电感设计 磁芯不要饱和&#xff08;开气隙&#xff09; 考虑铜损大于铁损 谐振电感设计 磁芯不要饱和&#xff08;开气隙&#xff09; 考虑铁损大于铜损 变压器设计 磁芯不要饱和&#xff08;开气隙&#xff09; 励磁电流产生磁场 开气隙 增加了…

1.rabbitMQ介绍

0.思考 我们以前为什么要学习java直接的框架代码,而不是用springboot整合的框架,在学习完MQ后,我的答案是,可以直接写成更灵活的MQ代码(其他框架也是,SSM我们为什么要学,在于灵活度更高,以后可能会遇到SSM的代码我就可以看得懂),springboot整合虽然完成了大多数功能,但是我要其…

SpringBoot+MyBatis搭建迷你微信小程序

课程链接&#xff1a;https://www.imooc.com/learn/945 标签组件 view view类似于HTML中的div标签是最基础的UI组件 https://blog.csdn.net/wushibo750/article/details/113802928 https://developers.weixin.qq.com/miniprogram/dev/component/view.html block flex ht…

突破1300件!腾讯数据安全专利授权量最新成绩出炉

今天是世界知识产权日&#xff0c;跟大家汇报一下我们在数据安全专利工作上的进展。 截至2023年4月&#xff0c;腾讯共获得数据安全相关专利授权量超过1300件、申请公开量超过1800件&#xff0c;涵盖数据加解密、数据库访问、数据分级分类、数据备份、数据防泄漏、机密计算等多…