一种基于FPGA的远程程序升级的方法与流程
未命名
07-27
阅读:265
评论:0
一种基于fpga的远程程序升级的方法
技术领域
1.本发明涉及通信技术领域,涉及一种基于fpga的远程程序升级的方法。
背景技术:
2.目前现场可编程门阵列(fpga)芯片可用于软件升级,但随着fpga芯片的性能和灵活性不断的提高,fpga芯片应用场景越来越广泛。
3.然而,传统的fpga芯片都处于密封状态,无法使用jtag下载线缆连接flash芯片,即fpga芯片无法完成对flash芯片的程序升级,需要手动控制fpga芯片的硬件开关使得fpga芯片的硬件开关转换至软件升级状态,这样不得不增加了控制fpga芯片的硬件开关设计,使得整个技术方案变得复杂,而且,fpga芯片的软件升级需要上传更新后的全部配置文件数据,而更新后的全部配置文件数据长度较大,在远程传输过程中传输数据的效率较低,在远程通信中难以适应。
技术实现要素:
4.鉴于解决远程传输过程中传输数据的效率较低,在远程通信中难以适应的问题,本发明的目的在于提供一种基于fpga的远程程序升级的方法,其提高了远程传输数据的效率,并且能够适用于远程通信。
5.为了实现上述目的,本发明提供了一种基于fpga的远程程序升级的方法。所述方法包括:
6.首先完成配置芯片的固化,配置芯片存储区域划分为三个部分,其一是跳转程序存储区,其二是备份程序存储区,其三是应用程序存储区。跳转程序存储区存储跳转指令,备份程序存储区和应用程序存储区出厂时二者相同,都存储出厂版本的应用程序。
7.启动fpga远程程序升级时,首先擦除所述启动转跳程序存储区域的内容,将擦除是否成功的结果传输至测试端,擦除成功后所述转跳程序存储区域将会转跳至备份程序存储区域,并将所述应用程序存储区域的数据更新标志位加锁,所述转跳程序存储区域存储的跳转指令具有控制fpga跳转加载程序区域的功能;
8.若擦除所述跳转程序存储区的内容成功,则执行擦除所述应用程序存储区域程序升级前后的配置文件变化的存储区域,其中,测试端传输所述应用程序存储区域程序升级前后配置文件变化的存储区域起始地址与长度,并判断擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域是否成功;
9.若擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域成功,将测试端上传程序升级后配置文件变化的内容数据并存储于所述应用程序存储区域中,并判断存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功;
10.若存储所述应用程序存储区域的程序升级后配置文件中更新内容成功,将所述应用程序存储区域的数据更新标志位解锁;
11.将所述应用程序存储区域的数据更新标志位解锁后,在所述转跳程序存储区域设
置写入转跳至所述应用程序存储区域的指令,并判断转跳至所述应用程序存储区域是否写入成功,若成功,表征所述应用程序存储区的程序更新成功结束。
12.可选地,所述擦除所述启动转跳程序存储区域的内容,将擦除是否成功的结果传输至测试端,包括:
13.若擦除所述启动转跳程序存储区域的内容失败,则终止所述上传程序升级后的配置文件中更新内容的指令;
14.重新执行擦除所述启动转跳程序存储区域的内容,直至擦除所述启动转跳程序存储区域的内容成功,执行下一步骤。
15.可选地,所述执行擦除所述应用程序存储区域程序升级前后的配置文件变化的存储区域,包括:
16.比较程序升级前和程序升级后的出厂配置文件变化部分,擦除所述程序升级后的配置文件中更新内容。
17.可选地,所述擦除所述程序升级后的配置文件中更新内容,包括:
18.对比所述配置文件变化部分,并确定程序升级前和程序升级后的配置文件中具有数据变化的扇区,在所述应用程序存储区中对有数据变化的扇区执行擦除操作。
19.可选地,所述测试端传输所述应用程序存储区域程序升级前后配置文件变化的存储区域起始地址与长度,包括:
20.根据所述应用程序存储区域中有数据变化的扇区,测试端发送擦除命令,所述命令包括数据变化扇区存储起始地址,其中,所述数据变化扇区存储起始地址为所述应用程序存储区域中一个存储地址;
21.接收到擦除命令,擦除所述应用程序存储区域中有数据变化的扇区。
22.可选地,所述擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域成功,还包括:
23.若擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域失败,重新执行三次擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域,若三次执行都失败则终止擦除操作,若成功则执行下一步骤。
24.可选地,所述测试端上传程序升级后配置文件变化的内容数据并存储于所述应用程序存储区域中,还包括:
25.测试端根据所述存储区域中有数据变化的扇区,发送上传命令,所述命令包括上传输数据变化的扇区的数据;
26.接收到所述上传命令,根据所述上传命令存储至所述应用程序存储区域中。
27.可选地,所述判断存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功,还包括:
28.存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功;
29.若存储所述应用程序存储区域程序升级后配置变化的内容数据失败,重新执行三次存储所述应用程序存储区域程序升级后配置变化的内容数据,若三次执行都失败则终止存储操作,若存储成功,则执行下一步骤。
30.可选地,若存储所述应用程序存储区域的程序升级后配置文件中更新内容成功,将所述应用程序存储区域的数据更新标志位解锁,还包括:
31.测试端发送程序升级后的配置文件中更新内容的数据校验指令;
32.接收到校验指令,并根据所述应用程序存储区域数据计算得到校验结果,并判断计算得到的校验结果与校验指令中传输的校验结果是否一致;
33.若计算得到的校验结果与校验指令中传输的校验结果一致,则将所述应用程序存储区域的数据更新标志位解锁,若计算结果与所述校验结果不一致,则将所述应用程序存储区域的数据更新标志位不解锁。
34.可选地,在所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令,并判断转跳至所述应用程序存储区域是否写入成功,还包括:
35.若在所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令失败,终止写入转跳至所述应用程序存储区域的指令过程。
36.本发明的有益效果如下:
37.本技术通过在上传程序升级后的配置文件中更新内容进行多次的判断,并确认擦除转跳程序存储区域和应用程序存储区域是否成功,才进行上传传程序升级后的配置文件中更新内容,并根据志位解锁是否成功确认上传是否成功,从而提高了远程传输过程中传输数据的效率,在远程通信中也比较容易适应,且上传传程序升级后的配置文件中更新内容仅仅是升级更新部分,无需上传配置文件中原来的部分,实现了程序的快速升级。
附图说明
38.图1是一种基于fpga的远程程序升级的方法流程图;
39.图2是一种基于fpga的远程程序升级的方法控制图;
40.图3是一种基于fpga的远程程序升级的方法的flash芯片工作原理图。
具体实施方式
41.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。
42.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
43.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
44.下面参照附图来详细说明根据本技术的一种基于fpga的远程程序升级的方法。
45.请参阅图1-图3,所述方法包括:
46.步骤s10,完成配置芯片的固化,配置芯片存储区域划分为三个部分,其一是跳转程序存储区,其二是备份程序存储区,其三是应用程序存储区。跳转程序存储区存储跳转指令,备份程序存储区和应用程序存储区出厂时二者相同,都存储出厂版本的应用程序。
47.可选地,存储区域中的转跳程序存储区域记录跳转的指令信息,仅需要大于36字节,由于flash芯片的数据读写特性,可以将其存储区域大小设置为flash芯片的最小可擦写扇区长度,而备份程序存储区域以及应用程序存储区域的存储空间大小相同,其空间大小设置为配置文件最大的长度。
48.进一步地,fpga芯片设置读写flash芯片第一接口,使得fpga芯片具有读写启动flash芯片的存储区域的能力,fpga芯片还设置第二接口,第二接口为远程网口、串口或其他通信接口,从而使得fpga芯片具备远程通信功能。
49.进一步地,完成配置芯片的固化,将所述制作出厂配置文件写入所述存储区域中。其中,出厂配置文件是给flash芯片进行制作的,并且备份程序存储区域以及应用程序存储区域均设置为具有flash芯片的读写和远程通信的正常功能配置文件,fpga芯片使用第一接口和第二接口将出厂配置文件写入flash芯片中。
50.步骤s20,启动fpga远程程序升级时,擦除所述启动转跳程序存储区域的内容,将擦除是否成功的结果传输至测试端,擦除成功后所述转跳程序存储区域将会转跳至备份程序存储区域,擦除成功后所述应用程序存储区域的数据更新标志位加锁,所述转跳程序存储区域存储的跳转指令具有控制fpga跳转加载程序区域的功能。
51.可选地,所述擦除所述启动转跳程序存储区域的内容,将擦除是否成功的结果传输至测试端,若擦除所述启动转跳程序存储区域的内容失败,则终止所述上传程序升级后的配置文件中更新内容的指令,重新执行擦除所述启动转跳程序存储区域的内容,直至擦除所述启动转跳程序存储区域的内容成功,执行下一步骤。
52.步骤s30,若擦除所述跳转程序存储区的内容成功,则执行擦除所述应用程序存储区域程序升级前后的配置文件变化的存储区域,其中,测试端传输所述应用程序存储区域程序升级前后配置文件变化的存储区域起始地址与长度,并判断擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域是否成功。
53.可选地,所述执行擦除所述应用程序存储区域程序升级前后的配置文件变化的存储区域,包括:
54.比较程序升级前和程序升级后的配置文件,得到所述程序升级后的配置文件中更新内容,即配置文件是更新变化的内容,此内容不包含原有配置文件内容,就是更新后的配置文件内容;
55.依据所述应用程序存储区域中的最小扇区,并确定程序升级前和程序升级后的配置文件中具有数据变化的扇区。可选地,根据flash芯片存储区域来进行擦写所述应用程序存储区域中的最小扇区;
56.测试端根据所述应用程序存储区域中有数据变化的扇区,发送擦除命令,所述命令包括数据变化的扇区存储起始地址,其中,所述数据变化的扇区存储起始地址为所述应用程序存储区域中一个存储地址;
57.接收到擦除命令,擦除所述应用程序存储区域的数据变化的扇区,其中,所述应用程序存储区域的数据变化的扇区存储起始地址与为所述应用程序存储区域中一个存储地址对应。
58.可选地,所述擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域成功,还包括:
59.若擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域失败,重新执行三次擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域,若三次执行都失败则终止擦除操作,若成功则执行下一步骤。
60.可选的,本技术需要先将转跳程序存储区域中的扇区擦除,并将上传程序升级后的配置文件中更新内容存储到擦除成功的转跳程序存储区域中的扇区中,并将其转跳至应用程序存储区域内进行存储程序升级后的配置文件中更新内容。
61.步骤s40,若擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域成功,将测试端上传程序升级后配置文件变化的内容数据并存储于所述应用程序存储区域中,并判断存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功。
62.可选地,所述测试端上传程序升级后配置文件变化的内容数据并存储于所述应用程序存储区域中,还包括:
63.测试端根据所述存储区域中有数据变化的扇区,发送上传命令,所述命令包括上传输数据变化的扇区的数据;
64.接收到所述上传命令,根据所述上传命令存储至所述应用程序存储区域中。
65.可选地,所述判断存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功,还包括:
66.存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功;
67.若存储所述应用程序存储区域程序升级后配置变化的内容数据失败,重新执行三次存储所述应用程序存储区域程序升级后配置变化的内容数据,若三次执行都失败则终止存储操作,若存储成功,则执行下一步骤。
68.步骤s50,若存储所述应用程序存储区域的程序升级后配置文件中更新内容成功,将所述应用程序存储区域的数据更新标志位解锁。
69.可选地,若存储所述应用程序存储区域的程序升级后配置文件中更新内容成功,将所述应用程序存储区域的数据更新标志位解锁,还包括:
70.测试端发送程序升级后的配置文件中更新内容的应用程序存储区域数据校验指令;
71.接收到校验指令,并根据所述应用程序存储区域数据计算得到校验结果,并判断计算得到的校验结果与校验指令中传输的校验结果是否一致;
72.若计算得到的校验结果与校验指令中传输的校验结果一致,则将所述应用程序存储区域的数据更新标志位解锁,若计算结果与所述校验结果不一致,则将所述应用程序存储区域的数据更新标志位不解锁。
73.步骤s60,将所述应用程序存储区域的数据更新标志位解锁后,在所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令,并判断转跳至所述应用程序存储区域是否写入成功,若成功,表征所述应用程序存储区的程序更新成功结束。
74.可选地,在所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令,并判断转跳至所述应用程序存储区域是否写入成功,还包括:
75.若在所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令失败,终止写入转跳至所述应用程序存储区域的指令过程。
76.可选地,在上述实施例中,每个判断过程都需要将判断结果发送至测试端,根据测
试端的测试得出结果是否成功,并将该结果发送至fpga芯片,fpga芯片根据该结果是否执行下一步骤,或重新执行擦除所述启动转跳程序存储区域的内容,直至全部判断过程均成功,则认为上传程序升级后的配置文件中更新内容的数据成功,从而实现了远距离的传输程序更新的数据,提高了传输的效率。
77.具体地,上传程序升级后的配置文件中更新内容的数据成功后,则将装置重新通电后即可加载运行新的程序。
78.通过步骤s10-s60,完成上传程序升级后的配置文件中更新内容进行多次的判断,并确认擦除转跳程序存储区域和应用程序存储区域是否成功,才进行上传传程序升级后的配置文件中更新内容,并根据志位解锁是否成功确认上传是否成功,从而提高了远程传输过程中传输数据的效率,在远程通信中也比较容易适应,且上传传程序升级后的配置文件中更新内容仅仅是升级更新部分,无需上传配置文件中原来的部分,实现了程序的快速升级。而且在启动空间为跳转程序存储区、备份程序存储区、应用程序存储区,通过擦除跳转程序存储区完成应用程序到备份程序的切换,保证软件升级的可靠性;远程程序升级时对比软件升级前后配置文件数据变化,仅传输数据变化的扇区数据到应用程序存储区,减少重复配置的上传工作,实现软件的快速远程上传。
79.本技术还提供一种基于fpga的远程程序升级的装置,所述装置包括:
80.转跳程序存储区域擦除模块,用于接收转跳程序存储区域擦除指令,根据命令擦除所述启动转跳程序存储区域的内容,将擦除是否成功的结果传输至测试端,擦除后所述转跳程序存储区域将会转跳至备份程序存储区域;
81.应用程序存储区域擦除模块,用于接收测试端传输所述应用程序存储区域程序升级前后配置文件变化的存储区域起始地址与长度,根据命令擦除所述应用程序存储区域的内容,将擦除是否成功的结果传输至测试端。
82.应用程序存储区域数据上传模块,用于接收测试端传输程序升级后配置文件变化的内容数据,根据命令存储于所述应用程序存储区域中,将存储是否成功的结果传输至测试端。
83.标志位解锁模块,用于接收测试端传输应用程序存储区域数据校验命令,根据命令计算应用程序存储区域数据的校验结果,并判断计算得到的校验结果与校验指令中传输的校验结果是否一致,将校验是否成功的结果传输至测试端。
84.转跳程序存储区域写入模块,用于接收测试端传输转跳程序存储区域写入命令,根据命令在所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令,并判断转跳至所述应用程序存储区域是否写入成功,将写入是否成功的结果传输至测试端,若成功,表征所述应用程序存储区的程序更新成功结束。
85.本装置通过上述各个模块之间的配合,转跳程序存储区域擦除模块和应用程序存储区域擦除模块进行多次的判断,并确认擦除转跳程序存储区域和应用程序存储区域是否成功,才进行上传传程序升级后的配置文件中更新内容,并根据志位解锁是否成功确认上传是否成功,从而提高了远程传输过程中传输数据的效率,在远程通信中也比较容易适应,且上传传程序升级后的配置文件中更新内容仅仅是升级更新部分,无需上传配置文件中原来的部分,实现了程序的快速升级。
86.本技术还提供一种存储介质,包括用于存储上述任意一项所述的基于fpga的远程
程序升级的方法。
技术特征:
1.一种基于fpga的远程程序升级的方法,其特征在于,所述方法包括:首先完成配置芯片的固化,配置芯片存储区域划分为三个部分,其一是跳转程序存储区,其二是备份程序存储区,其三是应用程序存储区。跳转程序存储区存储跳转指令,备份程序存储区和应用程序存储区出厂时二者相同,都存储出厂版本的应用程序。启动fpga远程程序升级时,擦除所述启动转跳程序存储区域的内容,将擦除是否成功的结果传输至测试端,擦除成功后所述转跳程序存储区域将会转跳至备份程序存储区域,擦除成功后所述应用程序存储区域的数据更新标志位加锁,所述转跳程序存储区域存储的跳转指令具有控制fpga跳转加载程序区域的功能;若擦除所述跳转程序存储区的内容成功,则执行擦除所述应用程序存储区域程序升级前后的配置文件变化的存储区域,其中,测试端传输所述应用程序存储区域程序升级前后配置文件变化的存储区域起始地址与长度,并判断擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域是否成功;若擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域成功,将测试端上传程序升级后配置文件变化的内容数据并存储于所述应用程序存储区域中,并判断存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功;若存储所述应用程序存储区域的程序升级后配置文件中更新内容成功,将所述应用程序存储区域的数据更新标志位解锁;将所述应用程序存储区域的数据更新标志位解锁后,在所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令,并判断转跳至所述应用程序存储区域是否写入成功,若成功,表征所述应用程序存储区的程序更新成功结束。2.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述完成配置芯片的固化,包括:制作出厂配置文件,并将所述制作出厂配置文件写入所述存储区域中。3.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述擦除所述启动转跳程序存储区域的内容,包括:若擦除所述启动转跳程序存储区域的内容失败,则终止所述上传程序升级后的配置文件中更新内容的指令;重新执行擦除所述启动转跳程序存储区域的内容,直至擦除所述启动转跳程序存储区域的内容成功,执行下一步骤。4.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述执行擦除所述应用程序存储区域程序升级前后的配置文件变化的存储区域,包括:依据所述存储区域中的最小扇区,并确定程序升级前和程序升级后的配置文件中具有数据变化的扇区,在所述应用程序存储区中对有数据变化的扇区执行擦除操作。5.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述测试端传输所述应用程序存储区域程序升级前后配置文件变化的存储区域起始地址与长度,包括:根据所述应用程序存储区域中有数据变化的扇区,测试端发送擦除命令,所述命令包括数据变化扇区存储起始地址,其中,所述数据变化扇区存储起始地址为所述应用程序存储区域中一个存储地址;接收到擦除命令,擦除所述应用程序存储区域中有数据变化的扇区。
6.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述若擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域成功,还包括:若擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域失败,重新执行三次擦除所述应用程序存储区域的程序升级前后配置文件变化的存储区域,若三次执行都失败则终止擦除操作,若成功则执行下一步骤。7.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述将测试端上传程序升级后配置文件变化的内容数据并存储于所述应用程序存储区域中,还包括:测试端根据所述存储区域中有数据变化的扇区,发送上传命令,所述命令包括上传输数据变化的扇区的数据;接收到所述上传命令,根据所述上传命令存储至所述应用程序存储区域中。8.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述并判断存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功,还包括:存储所述应用程序存储区域程序升级后配置变化的内容数据是否成功;若存储所述应用程序存储区域程序升级后配置变化的内容数据失败,重新执行三次存储所述应用程序存储区域程序升级后配置变化的内容数据,若三次执行都失败则终止存储操作,若存储成功,则执行下一步骤。9.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述若存储所述应用程序存储区域的程序升级后配置文件中更新内容成功,将所述应用程序存储区域的数据更新标志位解锁,包括:测试端发送程序升级后的配置文件中更新内容的数据校验指令;接收到校验指令,并根据所述应用程序存储区域数据计算得到校验结果,并判断计算得到的校验结果与校验指令中传输的校验结果是否一致;若计算得到的校验结果与校验指令中传输的校验结果一致,则将所述应用程序存储区域的数据更新标志位解锁,若计算结果与所述校验结果不一致,则将所述应用程序存储区域的数据更新标志位不解锁。10.根据权利要求1所述的基于fpga的远程程序升级的方法,其特征在于,所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令,并判断转跳至所述应用程序存储区域是否写入成功,还包括:若在所述转跳程序存储区域设置写入转跳至所述应用程序存储区域的指令失败,终止写入转跳至所述应用程序存储区域的指令过程。
技术总结
本申请提供了一种基于FPGA的远程程序升级的方法,其中,方法包括:通过在上传程序升级后的配置文件中更新内容进行多次的判断,并确认擦除转跳程序存储区域和应用程序存储区域是否成功,才进行上传传程序升级后的配置文件中更新内容,并根据志位解锁是否成功确认上传是否成功,从而提高了远程传输过程中传输数据的效率,在远程通信中也比较容易适应,且上传传程序升级后的配置文件中更新内容仅仅是升级更新部分,无需上传配置文件中原来的部分,实现了程序的快速升级。实现了程序的快速升级。实现了程序的快速升级。
技术研发人员:张增铄 时宏彪 王景煜 靖鑫 刘朴芳 石佳妍 崔军
受保护的技术使用者:北京电子工程总体研究所
技术研发日:2023.03.13
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
