高通平台 5G RF调试总结

news2024/11/24 7:19:20

目录:

1.QRCT4的使用

2.RFC配置

3.5G CA 配置概括

4.RFPD 运行及错误分析

5.CA吞吐率问题分析

    最新的5G HImalyaa平台RFC的配置方法和之前的平台发生了根本性的变化,主要体现在使用QRCT4工具来配置RFC XML文件,然后根据XML文件编译生成source code。这个变化使得配置RFC变得更直观化,所见即所得;同时也让配置者从复杂的代码里解放出来,减少了人为因素造成的错误。但是也让RFC的配置变得比较抽象,不如之前的代码方式那么直接。

一. QRCT4的使用

         这部分的具体内容就不展开详细说明,大家可参考80-nr258-10这个文档,同时可以自己先安装QDART这个工具,里面包含QRCT4这个tool,大家实际上手操作,收获会更多。

二. RFC配置

                                                      

以SM4350为例,打开一个RFcard XMl文件,里面有上图所示的这个标签页需要配置或者修改。

我们比较关注的或者说需要经常用到有:

Physical devices - 定义物理器件和逻辑器件

Signal path - 定义TX和RX通路,这个很重要,也是工作量及难度的主要所在。

FBRx Path - 定义TX通路用到的功率校准的通路。

SDR RFFE/GRFC Signals - 定义GRFC的地方

Antenna Switch Path - 定义天线切换通路,简称ASP

Signal path selection table - 定义CA和ENDC的信号分组

CA comb - 定义所有CA和ENDC组合

RFPD - 预编译代码

Concurrency Restrictions - 并发限制

当然别的标签里面的内容需要的时候也是需要修改和关注的。

下面我们就从列举出的这些标签页展开说明。

a. Physical devices

这里是定义物理器件和逻辑器件以及GRFC开关的地方。

如下图所示,定义了1个MXD8645的ASM,灰色区域为物理器件,蓝色区域为逻辑器件。

新平台的物理器件和逻辑器件配置放在了一起,不像老平台物理器件和逻辑器件是分开的。

配置器件的时候要注意和射频同事沟通,把所有的器件都添加,包括同一种器件,使用了多个,也要分别配置。以及各个器件的mid,pid,usid都要准确。同时要把第三方器件的驱动文件添加到代码里,否则会扫描不到器件。

 以上所有工作完成后,要用QRCT4工具的RFFE SCAN和 RFC DEBUG扫描一下,看所有的器件是否都能正常识别,包括物理器件和逻辑器件。

 如上图所示,扫描结果都没有报错,能扫描出HWID,RFM INIT也都OK。就说明我们器件添加成功。可以进行后续的配置了。

b. Signal path

这个标签是整个RFC配置中工作量最大,也是难度最大的一块,它关联到几乎所有的标签里面的内容,是整个RFC的核心。

和旧平台不同,旧平台是依据各个制式的BAND为核心来驱动RFC的;而新平台是依据不同的signal path来驱动RFC的。所以新旧平台配置的理解重点不一样,就平台以band为中心,而新平台以signal path为中心。

什么是signal path呢?通俗点讲究是从SDR的port 到 天线终端的XSW(the end of antenna switch path)为止,这就是一条signal path,包括这中间串连着各种器件,比如PA,ASM,LNA等等。

如下图红粗线所示就是一条signal path。

 以5G自研项目为例:

 逻辑表里显示GSM850/900的TX通路,信号从SDR的TX0_GSM_LB1 port口出来,经过器件 QM77043的增益,从天线ANT0发出。这就是一条完整的signal path + Antenna Switch Path.

 上图里的红框标示的就是GSM850/900的TX的一条siganl path。我们把它配置到siganl path标签页里面,就形成了一条signal path。里面包含了通路所属的band,SDR的port,PA、ASM器件及端口以及QET端口信息。下图就是最终的配置效果。

再以GSM850/900的PRX通路为例:

 逻辑表显示信号从天线ANT0进来,经过器件 QM77043的切换,最终进入到SDR的P_L口。

 红框这段就是GSM850/900的PRX的一条signal path。

我们需要把所有可能的signal path都配置出来。包括MIMO,SRS,ENDC,CA等等所有的通路。其中ENDC和CA通路需要事先提CASE请高通生成.

c. FBRx Path

FBRx path只用于TX通路,用于TX的功率校准。SDR器件有专门的FBRx口。我们需要把FBRX通路里的coupler和ASM开关都配上。

我们以5G自研项目为例,打开射频提供的框图,里面有SDR器件FBRX口的定义。如上图的红框所示。

 SDR_FBRX_IN是FBRX的总进口,通过ASM MXD8645M分出3个出口,分别为LB_FBRX,5G_FBRX_TX2_SP4T, 5G_FBRX_TX1_SP4T。这个ASM也需要配置在fbrx path里。

 我们以5G_FBRX_TX2_SP4T口为例,它最终连到QPM5579器件上。

 如上图QPM5579器件框图里的红框所示,最终的coupler器件就在蓝色框里,绿色框里是coupler的进出口。我们再打开QPM5579器件的端口文档说明书,找到coupler说明。

 根据这个coupler说明表,我们发现coupler有3个端口,所以针对5G_FBRX_TX2_SP4T这个出口,我们需要配置3条FBRX path.

最终的配置如下所示:

 d. SDR RFFE/GRFC Signals

这个标签是具体实现SDR GRFC的地方。

我们要查看射频提供的框图,确定要添加的SDR GRFC数量。如下图红框所示,5G自研项目有3个SDR GRFC要添加,分别为SDR_GRFC_0, SDR_GRFC_1, SDR_GRFC_14。

 一. 在第一步设置Physical devices的地方,先预先定义下这3个GRFC。Type这个参数说明一下,用于signal path的定义为ASM,用于ASP的定义为XSW。

 二. 然后回到SDR RFFE/GRFC Signals标签,再详细定义下这3个GRFC的行为。

 黑框里面的Comm Master默认SDR,因为我们定义的是SDR GRFC。

红框里面的Name值根据之前框图里面确定总数的那3个GRFC的值来定。

绿框里面的Load值默认为Range_0o5_TO_2_PF。

蓝框里面的Pull值默认为PULL_DOWN。

黄框里面的Common Init值默认为LOW。

三. 以上二步完成SDR GRFC的定义之后,我们在需要的地方调用这些GRFC。以SDR_GRFC_0为例说明如何使用SDR GRFC。先在框图里找到SDR_GRFC_0具体的定义。如下图,它其实是控制1个叫QM11122的开关,绿色框为QM11122的开关。结合射频给QM11122的器件说明书,发现是用来切换天线0和天线3的信号,实现DPDT功能。

 我们在ASP标签页定义一个PATH,加入这个GRFC,就完成这个DPDT的功能定义。添加SDR_GRFC_0的细节可见下图,红框里的Signal填写0;蓝框内的Enable填写HIGH,也也可以填写LOW,根据具体的需求来定;Module填写第一步中定义的名称。

 其实还有一种SDM GRFC,但是目前我们还没有用到过,还有待后续继续研究。

e. Antenna Switch Path

与Signal path(SP)类似,Antenna Switch Path(ASP)也是一种path,具体点讲就是从XSW到天线终端的一条PATH,包括经过的所有器件。之前介绍过Signal path是一条从SDR port到XSW的path,它和ASP刚好组成了一条完整的通路。这条完整的通路实现TX和RX的功能。如下图所示,蓝色粗线标示的就是一条ASP通路。它和红色粗线整合就是一条完整的TRX通路。绿色框里的是一个XSW器件,也是ASP和SP的分界点。XSW是开关,用来控制信号通过天线。

以5G自研项目为例,下图中的GSM1800/1900逻辑表,绿色框为signal path路径,红色框为ASP路径。从逻辑表可知,TX信号从TX0_GSM_MB1口出来,进过QM77043的PA增益,然后通过QM77048的开关及XSW切换,最后通过DPDT切换到天线3发射出去。我们可知这1条ASP包括QM77048的XSW以及用于DPDT切换的SDR_GRFC_0。

 最终配置的ASP通路如下:

 上面这个只是举例说明如何配置一条ASP通路。但是正常情况下,我们要一次就把所有可能的ASP通路都配置完成。这个就需要预先知道项目所有的天线,然后结合所有器件的XSW及GRFC来进行组合梳理出所有可能线路,再把它们一一配置出来。

上面这些只是ASP的简单应用,还有多天线(ASDIv)技术,即一个signal path可以有多条asp,这个可以实现硬件上说的SRS,我的理解是ASDIv是软件配置的概念,SRS是硬件射频那边的概念,二者有共通之处。

下面以5G核心板N78/N79逻辑表为例来说明ASDIv/SRS用法,下图红框表明了N78/N79的TX通路1T4R的配置路径,绿框表明了4个可用ASP的通路。

配置signal path的时候,正常只要在Ant switch path配置一组ASP即可。但是由于要实现SRS多组天线的切换,需要配置多组ASP来实现ASDIv。根据上面N79的逻辑表,射频在硬件上配置了1T4R,即一条path需要有4组天线切换。所以我们软件需要在Ant switch path配置四组ASP。

如下图红框所示。蓝框是关联项,即配置几组天线,我们需要添加几组的CalConfig,除了指定一组用于FULL_CAL,其它都默认选择NO_CAL.这边主要是用于射频那边的校准。

 下图即为最终的配置结果,我们为N79的TX通路配置了4路ASP,为别为30、32、11、39,它们分别对应于天线6、1、4、7.

上图蓝框内标示的SPG是个很重要的值,每个signal path都要配置SPG,它主要用于检查SRS冲突。SPG值取值的标准遵循下面这二个原则:

1.通过相同XSW的相同物理口(siganl path这一侧)的的siganl path的SPG值应该相同。

2.SPG值是唯一的。

再说明一下ASP配置的规则,通常来讲,TX和PRX的ASP应该相同,DRX和PRX的ASP不能相同。否则会报错。

f. Signal path selection table

信号路径选择表主要用于指定CA和ENDC组合的确切的signal path ID组合,特别是当加入了alt-path时,更是需要指定确定的signal path ID组合。以免编译时发生错误。我的理解是指定了确定的CA和ENDC路径组合,避免了路径冲突,比如不同的BAND组合同时引用同一个signal path,在这个表声明了后,RFC会认为这个行为合法,避免编译报错。

这个表主要用于指定下面三种格式的CA和ENDC组合。

LTE Sig Path Selection - GroupFor LTE CA combo only

NR5G Sig Path Selection - GroupFor 5G band combo only

LTE/NR5G Sig Path Selection - GroupFor LTE+5G (EN-DC) combo only

这一块的内容个人目前认知还有限,有待后续继续研究。

三. 5G CA 配置概括

配置CA组合时,首先需要射频同时提供所支持的所有组合,一般会以xml文件形式提供,xml内容如下:

<ca_4g_combos>
<ca_combo>B1A[4];A[1]+B20A[2]+B38A[2]</ca_combo>              <!--CA_1A(4)-20A-38A;1A-->
<ca_combo>B1A[4]+B20A[2];A[1]+B38A[2]</ca_combo>              <!--CA_1A(4)-20A-38A;20A-->
<ca_combo>B1A[4];A[1]+B38A[4]</ca_combo>                      <!--CA_1A(4)-38A(4);1A-->
.....
</ca_4g_combos>

• 每组由加号“+”分隔。

• 分号“;” 将 Rx 部分和 Tx 部分分开。 分号后面的项目是 Tx 部分。

• 需要在格式中配置带宽等级和UL/DL 层数。

拿到上述xml后,我们使用QRCT工具,打开CA Combo目录,把所有的组合配置到对应的模块下即可,如上述4G CA组合,就配置到4G CA Combo模块下

 下面简单举例解释一下组合写法的含义:

1.B1A[4];A[1]+B38A[2]

       “4”->表示这个band在这个组合中时RX支持4路的,也就是4x4 MIMO.

      “2”->就是普通的RX 2x2.

      “A[1]”->表示这个组合的TX (UL)是B1. 当然也会有双TX(UL)的情况,

      如:B1A[4];A[1]+B3A[2];A[1]+B20A[2]

2.<ca_combo>B7C[4,4];A[1]</ca_combo>

      “C”->表示BW class C for B7 DL。

      “4,4”->表示支持4x4 MIMO,并且可以支持 2 个连续载波。

3.N1A[20x2]+N78A[100x4];A[100x1]

      “100” or “20”->5G CA/ENDC中,5G band后面的这个数字表示支持的最大带宽。

注意:OEM 应在组合中定义 NR5G Sub-6 和 mmW 频段的带宽,请参阅文档 80-pm669-3.)

四. RFPD 运行及错误分析

(1) RFPD运行

配置完CA后首先要运行RFPD工具,检查是否会有错误。

 打开QRCT中的RFPD工具,填写MPSS的路径,然后点击Run CA offine tool开始运行。

运行完成后,会得到log路径:c:\Qualcomm\QDART\QRCT\RFPD_Run_14_41_1\modem_proc\rf\rfc_utils\rfpd\log\default\rfpd_report_index.html,

直接使用浏览器打开,查看运行结果

点击Link to reports查看具体结果。

(2) RFPD常见错误

RFPD常见错误一般为组合使用的sigpath不对引起,如:

CA组合:B1A[2];A[1] + B3A[2] + B7A[2],我们跑完RFPD,点击Link to reports查看具体结果:

 有一组CA报错了,点开查看具体报错原因

 从上面截图可以看到,原因是“RFC path sel sig path 1 port P_JMH not in TRX port for rf_band 1 ['P_LMH'], searching for next sigpaths match

表明Band 1应该使用sigpath为P_LMH的通路,但是使用了P_JMH的通路,引起报错,可以看到错误log的上方会给出这个组合的搭配方式:

sr_idx 0 band 1 [['P_LMH'], ['D_LMH'], None, None]
sr_idx 1 band 3 [['P_JMH'], ['D_JMH'], ['PM_JMH'], ['DM_JMH']]
sr_idx 2 band 7 [['P_MH'], ['D_MH'], ['PM_MH'], ['DM_MH']]

我们可以根据提示,指定这个组合的通路(在QRCT的Signal Path Selection Table中配置),解决此类问题。

 上述错误是比较常见的,还有一些错误就不一一赘述了,分析方法都如上,log中都会给出提示,按照log提示解决即可。

五. CA 吞吐率问题分析

CA吞吐率问题是指在配置完CA组合后,由硬测连接仪器测试吞吐率时,报告出来的问题。

大体可分为如下几类:

  1. 组合不上报
  2. 组合上报后,注册出现错误
  3. 注册成功后,速率不达标

(1)组合不上报

这类问题一般是由于CA组合中没有配置导致,需要注意的是配置CA组合时,要根据spec把所有情况都要配置上, 如:

 3CA组合1-3-20,根据spec我们需要配置如下组合:

B1A[4] ;A[1]+B3A[2];A[1]+B20A[2] -----------1A-3A作为上行(配置TX),1A配置4x4 MIMO

B1A[2] ;A[1]+B3A[4];A[1]+B20A[2] -----------1A-3A作为上行,3A配置4x4 MIMO

B1A[4] ;A[1]+B3A[2] +B20A[2] ;A[1] -----------1A-20A作为上行,1A配置4x4 MIMO

B1A[2] ;A[1]+B3A[4] +B20A[2] ;A[1] -----------1A-20A作为上行,3A配置4x4 MIMO

B1A[4] +B3A[2] ;A[1] +B20A[2] ;A[1] -----------3A-20A作为上行,1A配置4x4 MIMO

B1A[2] +B3A[4] ;A[1] +B20A[2] ;A[1] -----------3A-20A作为上行,3A配置4x4 MIMO

注意:组合即使配置了4x4MIMO,最好也把2x2的情况也配置上。如:

B1A[2] ;A[1]+B3A[2];A[1]+B20A[2] ---------1A-3A作为上行(配置TX),全部配置2x2

B1A[2] ;A[1]+B3A[2] +B20A[2] ;A[1] -----------1A-20A作为上行,全部配置4x4 MIMO

B1A[2] +B3A[2] ;A[1] +B20A[2] ;A[1] -----------3A-20A作为上行,全部配置4x4 MIMO

如遇见配置了组合还是出现未上报情况,那就需要进一步检查qxdm log,或者让硬测同事检查仪器配置。

(2)组合上报后,注册出现错误

此类问题一般是因为

1.测试的板子激活了不需要的mbn,需要使用PCAT工具’去激活’多余的mbn。

2.测试时设置的带宽不符合组合要求。

3.组合的天线口连接不正确,可以根据RFPD的log连接天线。

4.板子温度较高,需要使用风扇等工具降温再测

这些是目前遇见较多的,具体情况需要具体分析。

(3)注册成功后,速率不达标

此类问题是较重要的部分,

  1. 较简单的情况是组合未给绑定通路,导致速率不达标。

通常情况下,我们在配置完CA后是不会绑定通路的,只有在RFPD报错时,我们才会为了解错对错误组合进行通路绑定,如果不绑定,组合会自动选取通路,这可能会引起速率不达标。

所以在遇见速率不达标问题时,我们首先可以检查组合是否绑定了通路,如绑定后还是不达标,那就可能是下面第二种较为重要的情况了。

  1. 绑定通路后,速率不达标

 此类问题我们需要重点检查绑定的通路中,两个band使用的器件是不是有相同的,如上截图,当B1 - B3做组合时,B1 RX主级使用sigpath 1(P_JMH) ,B3 RX主级使用sigpath 122(P_MH)

此时RFPD是不会报错的,但在测试速率时,会因为使用了相同的QLN5030_U6302_MB2_LNA器件,而port口又不同,导致速率不达标。

  所以我们在绑定组合的通路时要特别注意,Band通路中是不是存在相同器件,尤其注意相同频段的band做组合时

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

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

相关文章

MobileNetV3原理说明及实践落地

本文参考&#xff1a; pytorch实现并训练MobileNetV3 - 灰信网&#xff08;软件开发博客聚合&#xff09; 【神经网络】(16) MobileNetV3 代码复现&#xff0c;网络解析&#xff0c;附Tensorflow完整代码 - 代码天地 1 MobileNetV3与V1、V2对比 &#xff08;1&#xff09;Mob…

【LeetCode每日一题:1945. 字符串转化后的各位数字之和~~~模拟】

题目描述 给你一个由小写字母组成的字符串 s &#xff0c;以及一个整数 k 。 首先&#xff0c;用字母在字母表中的位置替换该字母&#xff0c;将 s 转化 为一个整数&#xff08;也就是&#xff0c;‘a’ 用 1 替换&#xff0c;‘b’ 用 2 替换&#xff0c;… ‘z’ 用 26 替换…

匿名浏览器是什么?为什么联盟营销需要借助匿名浏览器?

这段时间小伙伴们都对联盟营销很感兴趣&#xff0c;东哥也是陆陆续续出了两三篇相关的科普文章&#xff0c;今天继续给大家介绍匿名浏览器在联盟营销上的帮助&#xff0c;毕竟互联网时代&#xff0c;学会如何借助工具高效工作是很重要的。关于联盟营销的概念科普文章大家可以看…

学不会的python之通过某几个关键字排序、分组一个字典列表(列表中嵌套字典)

通过某个关键字排序、分组一个字典列表排序问题描述解决方案1.operator 模块的 itemgetter 函数2.lambda 表达式引申分组问题描述解决方案1.itertools.groupby() 函数2.defaultdict() 构建多值字典排序 问题描述 现在你有一个字典列表(列表中嵌套字典)&#xff0c;你想要根据…

web 向 unity 传输文件流 blob 记录

场景&#xff1a;web 与unity 通信&#xff0c;向 unity 传输文件 二进制流。 由 unity 转换并下载文件。 流程&#xff1a; web 端将缓存的 blob 数据流读取为 base64 编码的数据 → 传给 unity, →unity 解码转换 base64 数据并下载。 web 端&#xff1a; 1、 将数据转换成…

【Axure教程】自定义审批流原型模板

审批流即审批流程&#xff0c;是对某项工作的审批活动的一系列有序组合。审批流在业务系统中担当者非常重要的角色&#xff0c;所以今天作者就教大家制作一个通用的自定也审批流的原型模板&#xff0c;方便大家日后的工作。 一、效果展示 1、可以根据业务需要添加多个审批节点…

QT学习笔记(中)

QT学习笔记&#xff08;中&#xff09; 文章目录QT学习笔记&#xff08;中&#xff09;P21 消息对话框P22 其他标准对话框P23 登录窗口界面和布局P24 控件 按钮组P25 QListWidget控件P26 QTreeWidget控件的使用P27 tableWidgetP28 其他常用控件介绍P30 自定义控件P31 QEventP32…

PyQt5 QtChart-折线图

PyQt5 QtChart-QLineSeries 折线图QLineSeriesQLineSeries QLineSeries类将数据序列显示为折线图&#xff0c;其核心代码&#xff1a; lineSeries QLineSeries() lineSeries.append(1, 3) lineSeries.append(5, 8) … chart.addSeries(lineSeries) 常用方法&#xff1a; set…

【linux】容器之代码自动发布-docker

一、分析 旧&#xff1a; 代码发布环境提前准备&#xff0c;以主机为颗粒度静态 新&#xff1a; 代码发布环境 多套&#xff0c;以容器为颗粒度编译 二、业务发布逻辑设计图 三、工具使用流程图 工具 gitgitlabjenkinstomcatmavenharbordocker 流程图 四、主机规划 五…

​智能化加速,「中国供应商」如何跨越规模化周期|高工观察

在过去的十年时间里&#xff0c;中国在智能电动汽车行业下了巨大的「赌注」&#xff0c;整个行业及其背后快速成长的本地化产业链生态系统成为新一轮汽车产业增长的新引擎。 与此同时&#xff0c;电动化、智能化技术的国产化突围&#xff0c;也让整个中国本土汽车产业链获得了…

SuperMap GIS的TIN地形数据处理QA

目录 一、TIN地形数据简介 二、TIN地形数据格式 三、TIN地形数据处理 3.1 导入数据集 3.2 生成TIN地形缓存 3.3 IDesktop场景加载TIN地形 3.4 发布服务 3.5 WebGL场景加载 3.5.1 viewer初始化加载 3.5.2 scene.open加载 四、可能遇到的报错及解决方案 问题一&#xff1a;多个TI…

蓝海创意云×可米酷 || “360VR全景直播解决方案”亮相企业产品发布会

12月8日&#xff0c;可米酷2023新品发布会重磅召开&#xff0c;蓝海创意云为可米酷提供了前沿技术支持&#xff0c;助力整场活动实现了360全景VR在线直播&#xff0c;为企业线下发布会直播活动提供借鉴。 发布会现场采用了全新的虚拟现实技术VR视频全景直播方式&#xff0c;全国…

Spring 中 PageHelper 不生效问题

使用这个插件时要注意版本的问题&#xff0c;不同的版本可能 PageHelper 不会生效 springboot 导入的 pagehelper 包 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><vers…

java+mysql 基于ssm的校园二手交易系统

现如今,校园二手交易系统是商业贸易中的一条非常重要的道路,可以把其从传统的实体模式中解放中来,网上购物可以为消费者提供巨大的便利。通过校园二手交易系统这个平台,可以使用户足不出户就可以了解现今的流行趋势和丰富的商品信息,为用户提供了极大的方便,校园二手交易系统的…

技术分享 | 跨平台API对接(Java)

本章介绍基于 Jenkins API 调用的跨平台 API 对接。 基于Jenkins实现跨平台API对接 Jenkins 提供了远程访问应用编程接口&#xff08;Remote Access API&#xff09;&#xff0c;能够通过 Http 协议远程调用相关命令操作 Jenkins 进行 Jenkins 视图、任务、插件、构建信息、任…

vue3 安装使用scss

1、安装相关依赖 node-sass css-loader style-loader sass-loader 2、声明 lang"scss" 或者 scss文件中就可以直接使用 3、重点&#xff1a;安装依赖的过程中出现的各种问题 3.1、安装node-sass 报错 如果没有安装python,就去下个安装包装一下记得配置环境变量…

世界杯小吐槽

冷门 在看这次世界杯的时候&#xff0c;心里真的是一上一下&#xff0c;今年的冷门太多了&#xff01; 如&#xff1a; 阿根延 VS 沙特阿拉伯 阿根延输了&#xff08;我想可能是阿拉伯的战术比较新吧!&#xff09;那场比赛之后&#xff0c;阿拉伯还全国放假一天。到现在&#…

1.浮动 float

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 1.4什么是浮动 float属性用于创建浮动框&#xff0c;将其移动到右边&#xff0c;直到左边缘或右边缘触及包含块或另一个浮动框的边缘。 1、语法&#xff1a; <style> …

2023年pmp的考试时间是什么时候?

PMP 考试一年是有四次考试&#xff0c;分别是 3 月、6月、9月、12月&#xff0c;不出意外的话就是这几个月了&#xff0c;提前 2 个月开始报名&#xff0c;但还是要关注PMI/基金会官网的信息&#xff0c;以官网的消息为准。 一、报考条件 报考条件其实挺简单的&#xff0c;最核…

MFC 错误 error C2504: “CDialogEx”: 未定义基类-报错解决

错误&#xff1a; 在MFC文件中添加资源窗口&#xff0c;后添加新类&#xff0c;随后在.h头文件中出现 CDialogEx C class 未定义基类错误。 原因&#xff1a; 首先&#xff0c;下图这个framework.h非常关键&#xff0c;它在pch.h中也有定义&#xff0c;所以下图这个framework.h…