导航:首页 > 源码编译 > 用驱动进行编译和不用的区别

用驱动进行编译和不用的区别

发布时间:2022-03-13 22:40:15

A. 在同一编译单元用extern和不用有什么区别

对函数来说没区别,不用extern的函数默认就是extern的,即其他文件也可以调用这个函数;但对变量来说有区别,不用extern声明变量的话,变量默认是static的,其他文件不能使用这个变量。那么如果所有函数和变量都只放在一个文件里进行编译,用不用extern就没有任何区别了。

B. 驱动和软件什么区别

一、主体不同

1、驱动:是指驱动计算机里软件的程序。

2、软件:是一系列按照特定顺序组织的计算机数据和指令的集合。

二、特点不同

1、驱动:是添加到操作系统中的特殊程序,其中包含有关硬件设备的信息。此信息能够使计算机与相应的设备进行通信。

2、软件:并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。


三、作用不同

1、驱动:是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。

2、软件:软件的开发和运行必须依赖于特定的计算机系统环境,对于硬件有依赖性,为了减少依赖,开发中提出了软件的可移植性。


C. 配置linux内核的时候,驱动的静态编译和动态编译有什么区别

驱动的动态编译会生成.ko文件,系统启动后需要加载该驱动后才能使用相应设备。
而静态编译则直接编译进内核,系统启动的时候会自动加载该驱动。
静态编译太多驱动至内核,会导致内核体积过大,启动时间较长。而动态编译则比较自由灵活,需要用的时候即加载,不需要的时候即卸载。我以前在EasyARM-iMX280的学习手册里看到写得很清楚,你可以去看看的。

D. 摄像头有驱动和不用驱动,有什么区别

摄像头如果不安装相应的驱动程序,系统就无法识别它。当然结果就是不能在系统下使用摄像头了。其实所有的硬件都需要相应的驱动程序才能够在系统下正常运作。所谓的免驱动程序其实指的是系统自带了部分设备的驱动程序,这些设备的厂家已经跟系统厂家合作或协议过。某些产品的驱动就附带在系统软件里了。这样那些跟系统厂家合作的生产商生产的产品即使没有配驱动软件,系统也能够正常识别并自动安装驱动程序。具体是有驱动的贵还是没驱动的贵这个问题很难讲清楚,有驱动的也有贵的没驱动的也有贵的,要看产品的品质新能而定。一般来说不需要驱动的设备使用起来比较方便就是了。

E. 驱动和驱使的区别

驱动与驱使是近义词,硬要找不同的话。可以这么认为:‘驱动’实施的主体一般为抽象的东西概念比方说利益,理想等等,而‘驱使’的主体一般则为有形的有行为能力的个人,团体组织(包括妖魔鬼怪哦)。

F. 系统跟驱动有什么区别

很简单的来说 系统:是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石 。 驱动:驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。操作系统不同,硬件的驱动程序也不同,各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia 显卡芯片公司平均每个月会升级显卡驱动程序2-3次。驱动程序是硬件的一部分,当你安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于你电脑中的硬件设备时,系统就会要求你安装驱动程序,将新的硬件与电脑系统连接起来。驱动程序扮演沟通的角色,把硬件的功能告诉电脑系统,并且也将系统的指令传达给硬件,让它开始工作。 当你在安装新硬件时总会被要求放入“这种硬件的驱动程序”,很多人这时就开始头痛。不是找不到驱动程序的盘片,就是找不到文件的位置,或是根本不知道什么是驱动程序。比如安装打印机这类的硬件外设,并不是把连接线接上就算完成,如果你这时候开始使用,系统会告诉你,找不到驱动程序。怎么办呢?参照说明书也未必就能顺利安装。其实在安装方面还是有一定的惯例与通则可寻的,这些都可以帮你做到无障碍安装。 在Windows系统中,需要安装主板、光驱、显卡、声卡等一套完整的驱动程序。如果你需要外接别的硬件设备,则还要安装相应的驱动程序,如:外接游戏硬件要安装手柄、方向盘、摇杆、跳舞毯等的驱动程序,外接打印机要安装打印机驱动程序,上网或接入局域网要安装网卡、Modem甚至ISDN、ADSL的驱动程序。说了这么多的驱动程序,你是否有一点头痛了。下面就介绍Windows系统中各种的不同硬件设备的驱动程序,希望能让你拨云见日。

G. 驱动编译进内核和编译模块的区别

第一次把自己编译的驱动模块加载进开发板,就出现问题,还好没花费多长时间,下面列举出现的问题及解决方案1:出现insmod:errorinserting'hello.ko':-1Invalidmoleformat法一(网上的):是因为内核模块生成的环境与运行的环境不一致,用linux-2.6.27内核源代码生成的模块,可能就不能在linux-2.6.32.2内核的linux环境下加载,需要在linux-2.6.27内核的linux环境下加载。a.执行uname-r//查看内核版本b.一般出错信息被记录在文件/var/log/messages中,执行下面命令看错误信息#cat/var/log/messages|tail若出现类似下面:Jun422:07:54localhostkernel:hello:versionmagic'2.6.35.6-45.fc14.i686.PAE'shouldbe'2.6.35.13-92.fc14.i686.PAE'则把Makefile里的KDIR:=/lib/moles/2.6.35.6-45.fc14.i686.PAE/build1改为KDIR:=/lib/moles/2.6.35.13-92.fc14.i686.PAE/build1//改成自己内核源码路径(这里的build1是一个文件链接,链接到/usr/src/kernels/2.6.35.6-45.fc14.i686.PAE和13-92的)然并卵,我的fedora14/usr/src/kernels下并没有2.6.35.13-92.fc14.i686.PAE,只有2.6.35.13-92.fc14.i686,虽然不知道两者有什么区别,但改成2.6.35.13-92.fc14.i686还是不行,照样这个问题,还好后来在看教学视频的到启发法二:改的还是那个位置KDIR:=/opt/FriendlyARM/linux-2.6.32.2//把这里改成你编译生成kernel的那个路径all:$(MAKE)-C$(KDIR)M=$(PWD)molesARCH=armCROSS_COMPILE=arm-linux-//加这句2.[70685.298483]hello:molelicense'unspecified'taintskernel.[70685.298673]方法:在模块程序中加入:MODULE_LICENSE("GPL");3.rmmod:chdir(2.6.32.2-FriendlyARM):Nosuchfileordirectory错误解决方法:lsmod可查看模块信息即无法删除对应的模块。就是必须在/lib/moles下建立错误提示的对应的目录((2.6.32.2)即可。必须创建/lib/moles/2.6.32.2这样一个空目录,否则不能卸载ko模块.#rmmodnls_cp936rmmod:chdir(/lib/moles):Nosuchfileordirectory但是这样倒是可以卸载nls_cp936,不过会一直有这样一个提示:rmmod:mole'nls_cp936'notfound初步发现,原来这是编译kernel时使用makemoles_install生成的一个目录,但是经测试得知,rmmod:mole'nls_cp936'notfound来自于busybox,并不是来自kernel1).创建/lib/moles/2.6.32.2空目录2).使用如下源码生成rmmod命令,就可以没有任何提示的卸载ko模块了[luther.gliethttp]#include#include#include#include#include#includeintmain(intargc,char*argv[]){constchar*modname=argv[1];intret=-1;intmaxtry=10;while(maxtry-->0){ret=delete_mole(modname,O_NONBLOCK|O_EXCL);//系统调用sys_delete_moleif(retread_proc=procfile_read;////Our_Proc_File->owner=THIS_MODULE;Our_Proc_File->mode=S_IFREG|S_IRUGO;Our_Proc_File->uid=0;Our_Proc_File->gid=0;Our_Proc_File->size=37;printk("/proc/%screated\n",procfs_name);return0;}voidproc_exit(){remove_proc_entry(procfs_name,NULL);printk(KERN_INFO"/proc/%sremoved\n",procfs_name);}mole_init(proc_init);mole_exit(proc_exit);[html]viewplainifneq($(KERNELRELEASE),)obj-m:=proc.oelseKDIR:=/opt/FriendlyARM/linux-2.6.32.2#KDIR:=/lib/moles/2.6.35.13-92.fc14.i686.PAE/build1PWD:=$(shellpwd)all:$(MAKE)-C$(KDIR)M=$(PWD)molesARCH=armCROSS_COMPILE=arm-linux-clean:rm-f*.ko*.o*.mod.o*.mod.c*.symversendifmake后生成proc.ko,再在开发板上insmodproc.ko即可执行dmesg就可以看到产生的内核信息啦

H. 驱动和编译器是否有些非常相似的地方呢用自己的话说

从哲学上说,他们都是作为接口而存在。操作系统通过驱动程序控制对应的硬件,高级程序设计语言通过编译器变成目标机器的机器语言。

I. 为啥有的鼠标要驱动有的不用有啥区别么

任何鼠标都需要驱动。不需要驱动的是因为电脑本身已经安装了鼠标驱动。需要驱动的是因为,鼠标型号比较少见或者是新出来的,电脑中没有该型号的驱动,所以需要安装相应型号的驱动

阅读全文

与用驱动进行编译和不用的区别相关的资料

热点内容
app的数据越来越大是什么 浏览:198
反编译步骤意思 浏览:642
ug编程怎么加刀补 浏览:623
奶片检验指标源码 浏览:590
中国程序员top10 浏览:306
iphone上的app怎么登录 浏览:944
在家很无聊用什么app 浏览:37
安卓接口如何更换 浏览:400
云音乐程序员上线功能 浏览:43
小天才手表如何查看app的使用时长 浏览:606
编译器多久能写一个 浏览:648
过磅怎么算法钱 浏览:873
同一款手机备份文件夹可以互用吗 浏览:868
matlab图像处理pdf 浏览:66
学python3最好的书 浏览:772
maven下载依赖的命令 浏览:93
二分查找流程图算法 浏览:689
质量问题的算法 浏览:86
c代码编译吃cpu频率还是核心 浏览:173
pdf签名adobe 浏览:407