皮皮网

【源码文字】【pythonwifi源码】【yfim源码】fpv源码

时间:2024-11-26 15:30:40 分类:知识 来源:乐搜源码

1.交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别
2.无人驾驶的专业名词?
3.移动硬盘删除文件后无法弹出

fpv源码

交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

       ä¸€. 什么是ABI和EABI

       1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)

       åœ¨è®¡ç®—机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口.

       ABI涵盖了各种细节,如:

       æ•°æ®ç±»åž‹çš„大小、布局和对齐;

       è°ƒç”¨çº¦å®šï¼ˆæŽ§åˆ¶ç€å‡½æ•°çš„参数如何传送以及如何接受返回值),例如,是所有的参数都通过栈传递,还是部分参数通过寄存器传递;哪个寄存器用于哪个函数参数;通过栈传递的第一个函数参数是最先push到栈上还是最后;

       ç³»ç»Ÿè°ƒç”¨çš„编码和一个应用如何向操作系统进行系统调用;

       ä»¥åŠåœ¨ä¸€ä¸ªå®Œæ•´çš„操作系统ABI中,目标文件的二进制格式、程序库等等。

       ä¸€ä¸ªå®Œæ•´çš„ABI,像Intel二进制兼容标准 (iBCS) ,允许支持它的操作系统上的程序不经修改在其他支持此ABI的操作体统上运行。

       ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中编译,ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。

       2) EABI: 嵌入式ABI

       åµŒå…¥å¼åº”用二进制接口指定了文件格式、数据类型、寄存器使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定。

       å¼€å‘者使用自己的汇编语言也可以使用EABI作为与兼容的编译器生成的汇编语言的接口。

       æ”¯æŒEABI的编译器创建的目标文件可以和使用类似编译器产生的代码兼容,这样允许开发者链接一个由不同编译器产生的库。

       EABI与关于通用计算机的ABI的主要区别是应用程序代码中允许使用特权指令,不需要动态链接(有时是禁止的),和更紧凑的堆栈帧组织用来节省内存。广泛使用EABI的有Power PC和ARM.

       äºŒ. gnueabi相关的两个交叉编译器: gnueabi和gnueabihf

       åœ¨debian源里这两个交叉编译器的定义如下:

       gcc-arm-linux-gnueabi – The GNU C compiler for armel architecture

       gcc-arm-linux-gnueabihf – The GNU C compiler for armhf architecture

       å¯è§è¿™ä¸¤ä¸ªäº¤å‰ç¼–译器适用于armel和armhf两个不同的架构, armel和armhf这两种架构在对待浮点运算采取了不同的策略(有fpu的arm才能支持这两种浮点运算策略)

       å…¶å®žè¿™ä¸¤ä¸ªäº¤å‰ç¼–译器只不过是gcc的选项-mfloat-abi的默认值不同. gcc的选项-mfloat-abi有三种值soft,softfp,hard(其中后两者都要求arm里有fpu浮点运算单元,soft与后两者是兼容的,但softfp和hard两种模式互不兼容):

       soft : 不用fpu进行浮点计算,即使有fpu浮点运算单元也不用,而是使用软件模式。

       softfp : armel架构(对应的编译器为gcc-arm-linux-gnueabi)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。

       hard : armhf架构(对应的编译器gcc-arm-linux-gnueabihf)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换, 性能最好,但是中断负荷高。

       æŠŠä»¥ä¸‹æµ‹è¯•ä½¿ç”¨çš„c文件内容保存成mfloat.c:

       #include <stdio.h>

       int main(void)

       {

       double a,b,c;

       a = .;

       b = .;

       c = b/a;

       printf(“the /2 = %f\n”, c);

       printf(“hello world !\n”);

       return 0;

       }

        1

        2

        3

        4

        5

        6

        7

        8

        9

       

       

        1

        2

        3

        4

        5

        6

        7

        8

        9

       

       

       1)使用arm-linux-gnueabihf-gcc编译,使用“-v”选项以获取更详细的信息:

       # arm-linux-gnueabihf-gcc -v mfloat.c

       COLLECT_GCC_OPTIONS=’-v’ ‘-march=armv7-a’ ‘-mfloat-abi=hard’ ‘-mfpu=vfpv3-d′ ‘-mthumb’

       -mfloat-abi=hard

        1

        2

        3

        1

        2

        3

       å¯çœ‹å‡ºä½¿ç”¨hard硬件浮点模式。

       2)使用arm-linux-gnueabi-gcc编译:

       # arm-linux-gnueabi-gcc -v mfloat.c

       COLLECT_GCC_OPTIONS=’-v’ ‘-march=armv7-a’ ‘-mfloat-abi=softfp’ ‘-mfpu=vfpv3-d′ ‘-mthumb’

       -mfloat-abi=softfp

        1

        2

        3

        1

        2

        3

       å¯çœ‹å‡ºä½¿ç”¨softfp模式。

       ä¸‰. 拓展阅读

       ä¸‹æ–‡é˜è¿°äº†ARM代码编译时的软浮点(soft-float)和硬浮点(hard-float)的编译以及链接实现时的不同。从VFP浮点单元的引入到软浮点(soft-float)和硬浮点(hard-float)的概念

       VFP (vector floating-point)

       ä»ŽARMv5开始,就有可选的 Vector Floating Point (VFP) 模块,当然最新的如 Cortex-A8, Cortex-A9 和 Cortex-A5 可以配置成不带VFP的模式供芯片厂商选择。

       VFP经过若干年的发展,有VFPv2 (一些 ARM9 / ARM)、 VFPv3-D(只使用个浮点寄存器,默认为个)和VFPv3+NEON (如大多数的Cortex-A8芯片) 。对于包含NEON的ARM芯片,NEON一般和VFP公用寄存器。

       ç¡¬æµ®ç‚¹Hard-float

       ç¼–译器将代码直接编译成发射给硬件浮点协处理器(浮点运算单元FPU)去执行。FPU通常有一套额外的寄存器来完成浮点参数传递和运算。

       ä½¿ç”¨å®žé™…的硬件浮点运算单元FPU当然会带来性能的提升。因为往往一个浮点的函数调用需要几个或者几十个时钟周期。

       è½¯æµ®ç‚¹ Soft-float

       ç¼–译器把浮点运算转换成浮点运算的函数调用和库函数调用,没有FPU的指令调用,也没有浮点寄存器的参数传递。浮点参数的传递也是通过ARM寄存器或者堆栈完成。

       çŽ°åœ¨çš„Linux系统默认编译选择使用hard-float,即使系统没有任何浮点处理器单元,这就会产生非法指令和异常。因而一般的系统镜像都采用软浮点以兼容没有VFP的处理器。

       armel ABI和armhf ABI

       åœ¨armel中,关于浮点数计算的约定有三种。以gcc为例,对应的-mfloat-abi参数值有三个:soft,softfp,hard。

       soft是指所有浮点运算全部在软件层实现,效率当然不高,会存在不必要的浮点到整数、整数到浮点的转换,只适合于早期没有浮点计算单元的ARM处理器;

       softfp是目前armel的默认设置,它将浮点计算交给FPU处理,但函数参数的传递使用通用的整型寄存器而不是FPU寄存器;

       hard则使用FPU浮点寄存器将函数参数传递给FPU处理。

       éœ€è¦æ³¨æ„çš„是,在兼容性上,soft与后两者是兼容的,但softfp和hard两种模式不兼容。

       é»˜è®¤æƒ…况下,armel使用softfp,因此将hard模式的armel单独作为一个abi,称之为armhf。

       è€Œä½¿ç”¨hard模式,在每次浮点相关函数调用时,平均能节省个CPU周期。对ARM这样每个周期都很重要的体系结构来说,这样的提升无疑是巨大的。

       åœ¨å®Œå…¨ä¸æ”¹å˜æºç å’Œé…ç½®çš„情况下,在一些应用程序上,使用armhf能得到%——%的性能提升。对一些严重依赖于浮点运算的程序,更是可以达到%的性能提升。

       Soft-float和hard-float的编译选项

       åœ¨CodeSourcery gcc的编译参数上,使用-mfloat-abi=name来指定浮点运算处理方式。-mfpu=name来指定浮点协处理的类型。

       å¯é€‰ç±»åž‹å¦‚fpa,fpe2,fpe3,maverick,vfp,vfpv3,vfpv3-fp,vfpv3-d,vfpv3-d-fp,vfpv3xd,vfpv3xd-fp,neon,neon-fp,vfpv4,vfpv4-d,fpv4-sp-d,neon-vfpv4等。

       ä½¿ç”¨-mfloat-abi=hard (等价于-mhard-float) -mfpu=vfp来选择编译成硬浮点。使用-mfloat-abi=softfp就能兼容带VFP的硬件以及soft-float的软件实现,运行时的连接器ld.so会在执行浮点运算时对于运算单元的选择,

       æ˜¯ç›´æŽ¥çš„硬件调用还是库函数调用,是执行/lib还是/lib/vfp下的libm。-mfloat-abi=soft (等价于-msoft-float)直接调用软浮点实现库。

       åœ¨ARM RVCT工具链下,定义fpu模式:

       â€“fpu softvfp

       â€“fpu softvfp+vfpv2

       â€“fpu softvfp+vfpv3

       â€“fpu softvfp+vfpv_fp

       â€“fpu softvfp+vfpv_d

       â€“fpu softvfp+vfpv_d_fp.

       å®šä¹‰æµ®ç‚¹è¿ç®—类型

       â€“fpmode ieee_full : 所有单精度float和双精度double的精度都要和IEEE标准一致,具体的模式可以在运行时动态指定;

       â€“fpmode ieee_fixed : 舍入到最接近的实现的IEEE标准,不带不精确的异常;

       â€“fpmode ieee_no_fenv :舍入到最接近的实现的IEEE标准,不带异常;

       â€“fpmode std :非规格数flush到0、舍入到最接近的实现的IEEE标准,不带异常;

       â€“fpmode fast : 更积极的优化,可能会有一点精度损失。

       Remember don’t at a loss and let the brain to calm down when comes questions, so can solve them faster!

无人驾驶的专业名词?

       无人机相关的专业术语集合

       一小学

       ①UAV:无人驾驶飞机(Unmanned Aerial Vehicle),简称无人机。

       ②FPV:第一人称主视角(First Person View),把无人机机载摄像头的画面实时传输回来。

       ③VR:虚拟现实(Virtual Reality),沉浸于虚拟的源码文字立体世界,与FPV结合,会有种自己在飞的感觉。

       ④AR:增强现实(Augmented Reality),把虚拟信息与现实画面叠加,与FPV结合,可以YY出空战等故事。

       ⑤GPS:全球定位系统(Global Positioning System),美国的卫星定位系统,咱们现在的手机导航、车载导航、无人机基本都是靠这个定位的。

       ⑥IMU:惯性测量单元(Inertial measurement unit),有三轴陀螺仪和三轴加速度计,可以推算出飞机的姿态。

       ⑦MEMS:微型机电系统(Micro Electro Mechanical System),咱们的手机里能装下这么多传感器就是MEMS技术的功劳。

       二、初中

       ①RC:无线电遥控(Radio control)

       ②FCC:美国联邦通讯委员会(Federal Communications Commission)

       ③CE:欧洲统一(European Conformity)

       概括的说,无人机说明书上的pythonwifi源码FCC和CE分别代表无线电的功率等符合的是美国标准或欧洲标准。

       ④RTK:载波相位差分(Real - time kinematic),比较建立在已知点的基准站所接收到的GPS载波,来剔除无人机上GPS定位的误差,可以把精度提高到厘米级。

       ⑤GLONASS:格洛纳斯(Global'naya Navigatsionnaya Sputnikovaya Sistema),俄罗斯版的GPS。

       ⑥BD:北斗(汉语拼音),中国版的GPS。

       ⑦PID:比例、积分、微分控制(比例(proportion)、积分(integral)、导数(derivative))

       ⑧AOPA:中国航空器拥有者及驾驶员协会(AOPA-China),民航局将无人机驾驶人员的资质管理权授予了中国AOPA,时间是年4月——年4月日,管理范围为视距内运行的空机重量大于7公斤以及在隔离空域超视距运行的无人机驾驶员的资质管理。

       三、高中

       ①GNSS:全球卫星导航系统(Global Navigation Satellite System),GPS、格洛纳斯、北斗还有欧洲那个没影的伽利略,都统称为GNSS。

       ②DGPS:差分系统(Differential Global Positioning System),与基准站比较提高无人机的yfim源码定位精度,不光有RTK,还有RTD。

       ③RTD:实时伪距差分(real-time kinematic pesudorange difference),比RTK低档的差分技术,比较的是GPS设备与卫星间的距离,精度为“亚米级”,就是误差不到1米。

       ④CEP:圆概率误差(circular error probable),定位结果的%在此半径的圆内。

       ⑤PPM:百万分之一(Parts Per Million),有些RTK的定位精度标称为1cm+1ppm,意思就是说无人机与基准站的距离的百万分之一+1厘米。当然,精度与距离并非线性关系,可以理解为在公里以内成立。

       ⑥POS:定位定向系统( position and orientation system),里边有IMU和DGPS,可以生成实时的导航数据,为航测(航空摄影测量)作数据支撑。

       ⑦Lidar:激光雷达(Light Detection And Ranging),做三维航测用的豪华装备,精度高但是非常昂贵。(三维建模也可以用较廉价的倾斜摄影测量)。

       ⑧SAR:合成孔径雷达(Synthetic Aperture Radar)

       ⑨API:应用程序编程接口(Application Programming Interface),suspendthread源码无须更改飞控的源码就可以实现附加的功能,这样可以保证飞控的稳定性。

移动硬盘删除文件后无法弹出

       清理方法:

        首先选用两个查杀工具:一是Unlocker解套软件(点击下载);二是IceSword冰刃专杀软件(点击下载)(主要用于清理注册表)。

        1、安装并运行Unlocker解套软件。这个软件是右键扩充工具,安装后,它便能整合于鼠标右键的操作当中,当使用者发现有某个文件或目录无法删除时,只要按下鼠标右键中的“Unlocker”,那么程序马上就会显示出是哪一些程序占用了该目录或文件,接着只要按下弹出的窗口中的Unlock”就能够为你的文件解套。(因为病毒文件是寄生在其他系统文件里的,所以要把病毒解套出来才能看到它的真实面目,才便于杀掉它). Unlocker 不同于其它解锁软件的部分在于它并非强制关闭那些占用文件的程序,而是以解除文件与程序关连性的方式来解锁,因此不会像其它解锁程序一样因为强制关闭程序而造成使用者可能的数据遗失。安装运行Unlocker后,在 C:\WINDOWS\system 下找到病毒文件(是一个DLL文件,由字母和数字组成的,卡巴斯基能查到这个病毒但删不了,可以用卡巴斯基找到这个病毒文件名),找到带病毒的文件后,右击这个文件,在下拉菜单中选择unlocker进行解锁(安装完软件后会在右键菜单上生成一个unlocker的菜单项)。解锁后可用手动删除.也可用卡巴斯基删除.

        删除system里带病毒的dll文件后,再进入C:\WINDOWS\system\drivers 里找到×.sys文件(×跟之前那个dll文件同名,只是扩展名不一样)用同样的方法先解锁后用手动删除。删除后记到清空回收站。然后再运行regedit打开注册表编辑器,11110011源码分别在

        HKEY_LOCAL_MACHINE\SYSTEM\Controlset\Services

        HKEY_LOCAL_MACHINE\SYSTEM\Controlset(或)\Services

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下找到以病毒文件名命名的项并删除(这是删除病毒文件的注册项)至此,可恨的Trojan-Downloader.Win.QQHelper.mo被杀掉了,重启计算机,卡巴斯基就不再报警尖叫了.

        但是该病毒还没彻底删除干净,还有抓子(钩子)与外界相连,一但时机成熟又从病毒网站下载该病毒运行。所以要把抓子一起干掉,这个抓子在注册表:

        HKEY-LOCA-MACHINE/sysTEM/controlset/Enum/Root/LEGACY_NUTFPV 里(也许你机子里的病毒文件名不是这个nutfpv,但都在Root项下),这个抓子在常规下是删除不了的,必须要借助于以下工具。

        2、运行IceSword冰刃专杀软件(此软件是免安装的)。打开后点“注册表”,按照地址HKEY-LOCA-MACHINE/sysTEM/controlset/Enum/Root/LEGACY_NUTFPV找到NUTFPV(NUTFPV是病毒文件名,也许你的不是这个文件名,但性质是一样的),删除右边栏里NUTFPV的所有键值。

       至此大功告成!你的心情和爱机顿感亮丽愉悦!以后遇到无法删除的顽固病毒也可以用类似的方法解决哦~

       (附世界九大病毒介绍)

       一. “尼姆达”(Nimda)病毒简介

       “尼姆达” 病毒年9月日在全球蔓延,是一个传播性非常强的黑客病毒。它以邮件传播、主动攻击服务器、即时通讯工具传播、FTP协议传播、网页浏览传播为 主要的传播手段。它能够通过多种传播渠道进行传染,传染性极强。对于个人用户的PC机,“尼姆达”可以通过邮件、网上即时通讯工具和“FTP程序”同时进 行传染;对于服务器,“尼姆达”则采用和“红色代码”病毒相似的途径,即攻击微软服务器程序的漏洞进行传播。由于该病毒在自身传染的过程中占用大量的网络 带宽和计算机的内部资源,因此许多企业的网络现在受到很大的影响,有的甚至已经瘫痪,就个人使用的PC机来说,速度也会有明显的下降。

       二. 尼姆达”(Nimda)新变种病毒简介

       “尼姆达”新变种命名为Worm.Concept.。其特点是在病毒源代码中有一段说明:Concept Virus(CV)V.6,Copyright(C),(This's CV,No Nimda.)。(意思是:这是概念病毒,不是尼姆达病毒。)它在尼姆达病(Worm.Concept.)上做的改动有:

       l 附件名从Readme.exe改为Sample.exe;

       l 感染IIS系统时生成的文件从Admin.dll改为Httpodbc.dll;

       l 在NT/及相关系统,病毒拷贝自己到Windows的system目录下,不再叫mmc.exe,而用Csrss.exe的名字。

       三.“求职信”(Wantjob)病毒简介

       该病毒不仅具有尼姆达病毒自动发信、自动执行、感染局域网等破坏功能,而且在感染计算机后还不停地查询内存中的进程,检查是否有一些杀毒软件的存 在(如AVP/NAV/NOD/Macfee等)。如果存在则将该杀毒软件的进程终止。每隔0.1秒就循环检查进程一次,以至于这些杀毒软件无法运行。

       该病毒如果感染的是Windows NT/系统的计算机,即把自己注册为系统服务进程,一般方法很难杀灭。它还不停地向外发送邮件,把自己伪装成“Htm、Doc、Jpg、Bmp、 Xls、Cpp、Html、Mpg、Mpeg”类型文件中的一种,文件名也是随机产生的,很具隐蔽性。

       四.Codeblue(蓝色代码)病毒简介

       “蓝色代码”是一个蠕虫病毒,能够感染Windows NT及Windows 系统服务器,由于其攻击微软inetifo.exe程序的漏洞,并植入名为SvcHost.EXE的黑客程序运行,该蠕虫病毒将在服务器内存中不 断地生成新的线程,最终导致系统运行缓慢,甚至瘫痪。

       “蓝色代码”的特点是攻击服务器后可以对服务器直接破坏,造成服务器的瘫痪,它的设置是通过被感染的服务器对绿盟网站发起攻击,但是因为病毒程序上的bug没有执行。绿盟网站是一个著名的反黑客网站。

       五.VBS.happytime病毒简介

       VBS.happytime是一个感染 VBS、html 和脚本文件的脚本类病毒。该病毒采用 VBScript 语言编写,它既可在电子邮件的形式通过互联网进行传播,也可以在本地通过文件进行感染。 当用浏览器打开一个被感染的 html 文件时,病毒会设置网页的时间中断事件,每 秒运行执行 Help.vbs 一次,该文件存放在 C:\ 盘下第一个子目录下。如果通过 hta文件激活病毒,病毒还会在 C:\ 盘下第一个子目录下生成 Help.hta 文件并执行。

       VBS.happytime病毒危害程度很大,可以破坏 html、htm、htt、vbs 和 asp 文件的内容(被修改成病毒代码);大量散发病毒邮件, 破坏 Windows 资源管理器中缺省的 Web 视图等。

       六.VBS.HomePage病毒简介

       VBS.HomePage是一个由VBS病毒编写工具制造并加密的网络蠕虫病毒。该病毒从邮件附件被执行后,会查找所有的Outlook地址薄, 枚集出全部的联系人地址,然后发送邮件,邮件信息如下:邮件主题:Homepage ,邮件正文:Hi! You've got to see this page! It's really cool ;0)邮件附件:homepage.HTML.vbs(伪装为主页的病毒代码,大小为2, 字节).

       该病毒可以影响网络正常运行,修改注册表。

       七.Win.HLLW.Matcher.病毒简介

       Win.HLLW.Matcher.是一种新型的特洛伊电脑病毒,它正在迅速扩散。当一个收件者打开了附件.EXE文件后,这个病 毒发送自身到用户Outlook邮箱的所有地址。病毒文件的标题为"Matcher",邮件附件文件为MATCHER.EXE。其信息为:Want to find your love mates!!!/Try this its cool…/Looks and Attitude matching to opposite sex。

       该病毒向Windows系统目录发送自身复制品,并修改注册表和AUTOEXEC.BAT文件,使得机器每次启动后自动运行病毒程序,最严重的情况下,发作的病毒每分钟就复制一遍,致使电脑服务器瘫痪。

       八.VBS.LoveLetter(我爱你)病毒简介

       “我爱你”病毒是通过Microsoft Outook电子邮件系统传播的,邮件的主题为“ILOVEYOU”,并包含一个附件。一旦在Microsoft Outlook里打开这个邮件,系统就会自动复制并向地址簿中的所有邮件电址发送这个病毒。 “我爱你”病毒是一种蠕虫病毒,可以改写本地及网络硬盘上面的某些文件。

       九.CIH病毒简介

       CIH是一个纯粹的WINDOWS /病毒。通过软件之间的相互拷贝、盗版光盘的使用有Internet网的传播而大面积传染。CIH病毒发作时将用杂乱数据覆盖硬盘前K字 节,破坏主板Bios Flash芯片,机器无法启动。允许写Flash内存时才有可能,通常用DIP开关写Flash内存时无效,然而现代主板大多数不能由DIP开关进行 Flash内存写保护,因此该病毒发作时会破坏大多数可升级主板Flash Bios。它具备彻底摧毁计算机系统的能力。该病毒可以覆盖硬盘主引导区的Boot区,改写硬盘数据。 /question/.html

       满意请采纳。

copyright © 2016 powered by 皮皮网   sitemap