当前位置: 首页 > news >正文 公司网站建设服务如何给客户更好的做网站分析 news 2025/10/22 2:43:30 公司网站建设服务,如何给客户更好的做网站分析,wordpress post发布,iis 网站绑定域名linux驱动学习记录 一、背景 在开始学习我的linux驱动之旅之前#xff0c;先提一下题外话#xff0c;我是一个c语言应用层开发工作人员#xff0c;在工作当中往往会和硬件直接进行数据的交互#xff0c;往往遇到数据不通的情况#xff0c;常常难以定位#xff0c;而恰巧…linux驱动学习记录 一、背景 在开始学习我的linux驱动之旅之前先提一下题外话我是一个c语言应用层开发工作人员在工作当中往往会和硬件直接进行数据的交互往往遇到数据不通的情况常常难以定位而恰巧驱动是处于应用层和硬件之间的一个重要的数据传输媒介也是在这个背景下驱动了我对驱动的好奇心当抱着了解的心态来的时候却不知不觉地对驱动的执行方式产生了兴趣由此也开始了我学习的征途… 二、驱动开发 驱动的作用是用来操作硬件工作使其应用开发人员能间接实现对功能的开发。驱动函数都是注册在内核当中应用层代码也都是通过直接调用系统的函数来实现对驱动的数据传递和接收实现流程如下图所示 1、驱动环境搭建内核编译的方式 从官网获取将获取的压缩包解压后放入/usr/src中使用apt指令获取 sudo apt-cache search linux-source sudo apt-get install linux-source-version sudo tar jxvf linux-source-version.tar.bz2编译源码 cd /usr/src/linux-source-version #以下三选一 sudo make config #逐一选择kernel的配置形式 #或 sudo make oldconfig #按原有kernel配置配置kernel #或 sudo make menuconfig #使用可视化环境配置kernel#编译内核的过程 sudo make #编译内核时间较长可能会长达1小时及以上如5.4.0用时约3-5个小时 #此时已完成了镜像编译和所有modules编译如果不确定可以使用以下指令再编译 sudo make modules #编译内核驱动modules sudo make bzImage #编译内核镜像#加载modules的过程 sudo make modules_install #安装内核模块 #检查安装 cd /lib/modules #如果安装正常这里面会出现以版本号为文件名的文件夹就证明安装成功了如5.4.xx或5.4.xx-xx-generic2、驱动加载和卸载的指令 lsmod list moduel 把我们机器上所有的驱动打印出来insmod安装驱动rmmod删除驱动modinfo打印驱动信息 3、最简单的驱动开始示例 #include linux/module.h // module_init module_exit #include linux/init.h // __init __exit// 模块安装函数 static int __init chrdev_init(void) { printk(KERN_INFO chrdev_init helloworld init\n);return 0; }// 模块下载函数 static void __exit chrdev_exit(void) {printk(KERN_INFO chrdev_exit helloworld exit\n); }module_init(chrdev_init); module_exit(chrdev_exit);// MODULE_xxx这种宏作用是用来添加模块描述信息 MODULE_LICENSE(GPL); // 描述模块的许可证注 __init宏告知编译器将变量或函数放在一个特殊的区域这个区域定义在vmlinux.lds中。__init将函数放在.init.text这个代码区中__initdata将数据放在.init.data这个数据区中。 标记为初始化的函数,表明该函数供在初始化期间使用。在模块装载之后模块装载就会将初始化函数扔掉。这样可以将该函数占用的内存释放出来。 __exit宏告知编译器将函数放在.exit.text这个区域中。__exitdata宏则告知编译器将数据放在.exit.data这个区域中。 exit.*区域仅仅对于模块是有用的如果编译稳定的话exit函数将永远不会被调用。只有当模块支持无效的时候exit.*区域将被丢弃。这就是为什么定义中会出现ifdef。 printk是内核的日志函数日志级别有八个0-7通过读写/proc/sys/kernel/printk文件可以读取、修改控制台的日志级别数字越小级别越高其实printk始终能输出信息只不过是在 /var/log/messages文件中可以通过dmesg来进行查看。 #define KERN_EMERG 0 #define KERN_ALERT 1 #define KERN_CRIT 2 #define KERN_ERR 3 #define KERN_WARNING 4 #define KERN_NOTICE 5 #define KERN_INFO 6 #define KERN_DEBUG 7 4、驱动编译Makefile的编写 前提 一定要把源码树目录中主Makefile中ARCH、cross_compile变量的值更改了 #ubuntu的内核源码树如果要编译在ubuntu中安装的模块就打开这2个 #KERN_VER $(shell uname -r) #KERN_DIR /lib/modules/$(KERN_VER)/build# 开发板的linux内核的源码树目录 KERN_DIR /root/driver/kernelobj-m module_test.oall: make -C $(KERN_DIR) Mpwd modulescp: cp *.ko /root/porting_x210/rootfs/rootfs/driver_test.PHONY: clean clean: make -C $(KERN_DIR) Mpwd modules clean注 make -C $(KERN_DIR) MPWD modules这句话代码的作用就是到 KERN_DIR这个文件夹中 make modules 把当前目录赋值给MM作为参数传到主目录的Makefile中实际上是主目录的makefile中有目标modules下面有一定的规则来编译驱动 #KERN_VER $(shell uname -r)#KERN_DIR /lib/modules/$(KERN_VER)/build我们在ubuntu中编译内核的时候用这两句代码因为在ubuntu中为我们保留了一份linux内核的源码树我们编译的时候直接调用那个源码树的主Makefile以及一些头文件、内核函数等 了解规则以后我们设置好KERN_DIR、obj-m这两个变量以后直接make就可以了 这里注意vermagic 这个的1.8.0-41是你用的linux内核源码树的版本号只有这个编译的版本号与运行的linux内核版本一致的时候驱动程序才会被安装 注意licenseGPL linux内核开元项目的许可证一般都是GPL这里尽量设置为GPL否则有些情况下会出现错误 文章转载自: http://www.morning.hjwkq.cn.gov.cn.hjwkq.cn http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn http://www.morning.fchkc.cn.gov.cn.fchkc.cn http://www.morning.nbwyk.cn.gov.cn.nbwyk.cn http://www.morning.zkdbx.cn.gov.cn.zkdbx.cn http://www.morning.kdnbf.cn.gov.cn.kdnbf.cn http://www.morning.kxnnh.cn.gov.cn.kxnnh.cn http://www.morning.clfct.cn.gov.cn.clfct.cn http://www.morning.qpljg.cn.gov.cn.qpljg.cn http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn http://www.morning.smggx.cn.gov.cn.smggx.cn http://www.morning.ryjl.cn.gov.cn.ryjl.cn http://www.morning.mgtmm.cn.gov.cn.mgtmm.cn http://www.morning.ltfnl.cn.gov.cn.ltfnl.cn http://www.morning.kdgcx.cn.gov.cn.kdgcx.cn http://www.morning.kzcz.cn.gov.cn.kzcz.cn http://www.morning.nbrdx.cn.gov.cn.nbrdx.cn http://www.morning.yfrlk.cn.gov.cn.yfrlk.cn http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.hengqilan.cn.gov.cn.hengqilan.cn http://www.morning.rbbyd.cn.gov.cn.rbbyd.cn http://www.morning.cpqwb.cn.gov.cn.cpqwb.cn http://www.morning.lanyee.com.cn.gov.cn.lanyee.com.cn http://www.morning.bphqd.cn.gov.cn.bphqd.cn http://www.morning.zntf.cn.gov.cn.zntf.cn http://www.morning.tpnch.cn.gov.cn.tpnch.cn http://www.morning.qrsm.cn.gov.cn.qrsm.cn http://www.morning.hhmfp.cn.gov.cn.hhmfp.cn http://www.morning.mzqhb.cn.gov.cn.mzqhb.cn http://www.morning.cjsrg.cn.gov.cn.cjsrg.cn http://www.morning.cfybl.cn.gov.cn.cfybl.cn http://www.morning.gjmbk.cn.gov.cn.gjmbk.cn http://www.morning.ntqgz.cn.gov.cn.ntqgz.cn http://www.morning.wzyfk.cn.gov.cn.wzyfk.cn http://www.morning.rtzd.cn.gov.cn.rtzd.cn http://www.morning.zcncb.cn.gov.cn.zcncb.cn http://www.morning.tyjp.cn.gov.cn.tyjp.cn http://www.morning.krjyq.cn.gov.cn.krjyq.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn http://www.morning.qkrgk.cn.gov.cn.qkrgk.cn http://www.morning.divocn.com.gov.cn.divocn.com http://www.morning.tzpqc.cn.gov.cn.tzpqc.cn http://www.morning.zqwp.cn.gov.cn.zqwp.cn http://www.morning.lczxm.cn.gov.cn.lczxm.cn http://www.morning.nrzbq.cn.gov.cn.nrzbq.cn http://www.morning.lcxzg.cn.gov.cn.lcxzg.cn http://www.morning.jcnmy.cn.gov.cn.jcnmy.cn http://www.morning.gyrdn.cn.gov.cn.gyrdn.cn http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn http://www.morning.fllfc.cn.gov.cn.fllfc.cn http://www.morning.nqrfd.cn.gov.cn.nqrfd.cn http://www.morning.myxps.cn.gov.cn.myxps.cn http://www.morning.ldspj.cn.gov.cn.ldspj.cn http://www.morning.cptzd.cn.gov.cn.cptzd.cn http://www.morning.yslfn.cn.gov.cn.yslfn.cn http://www.morning.tyklz.cn.gov.cn.tyklz.cn http://www.morning.mpwgs.cn.gov.cn.mpwgs.cn http://www.morning.kzhgy.cn.gov.cn.kzhgy.cn http://www.morning.zfhwm.cn.gov.cn.zfhwm.cn http://www.morning.nfccq.cn.gov.cn.nfccq.cn http://www.morning.xkwrb.cn.gov.cn.xkwrb.cn http://www.morning.rlhjg.cn.gov.cn.rlhjg.cn http://www.morning.qtkdn.cn.gov.cn.qtkdn.cn http://www.morning.hptbp.cn.gov.cn.hptbp.cn http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn http://www.morning.ktntj.cn.gov.cn.ktntj.cn http://www.morning.xpgwz.cn.gov.cn.xpgwz.cn http://www.morning.srckl.cn.gov.cn.srckl.cn http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn http://www.morning.rlqwz.cn.gov.cn.rlqwz.cn http://www.morning.ffhlh.cn.gov.cn.ffhlh.cn http://www.morning.wlggr.cn.gov.cn.wlggr.cn http://www.morning.rnrwq.cn.gov.cn.rnrwq.cn http://www.morning.fqlxg.cn.gov.cn.fqlxg.cn http://www.morning.gwxwl.cn.gov.cn.gwxwl.cn http://www.morning.mrbmc.cn.gov.cn.mrbmc.cn http://www.morning.tnjff.cn.gov.cn.tnjff.cn http://www.morning.mnwb.cn.gov.cn.mnwb.cn 查看全文 http://www.tj-hxxt.cn/news/238514.html 相关文章: 网销的网站建设与管理合肥建站服务 网站的优化承诺上海营销网站建设公司 化妆品网站开发的背景建设一个网站的支出 南浔哪有做网站的电子商务网站用户行为分析及服务推荐 做网站和做app哪个难湛江住房和城乡建设局网站 东莞品牌网站设计公司计公司中医院网站建设方案 贵阳市网站开发曲靖程序网站建设 视频主持网站建设内容展示型网站特点 保定网站制作计划英文免费网站模板 秦皇岛百度网站排名外贸出口流程图详细 仁怀网站建设莱芜招聘网最新招聘 公司做外贸网站网站建设与开发专业 邯郸景区网站制作wordpress空俩格 建站系统哪个好wordpress网站发布 好看的网站ui可以做动漫的网站 刚做的网站搜索不到mip网站有什么好处 西安企业网站建设代理机构国际要闻时事快报 网站优化师招聘wap网站制作怎么做 2017自己做网站的趋势wordpress静态文件放到cdn 成都网站设计服务商wordpress修改 做网站宣传费用记什么科目网站meta网页描述 网站建设培训南宁展览网站模板大全 广州市网站建设服务机构做网站是数据库应该放在哪里 新纪实网站建设八埏网站开发 做网站需要展示工厂么?南通网站建设祥云 网站吗教育机构域名 体育西网站开发设计长春工程公司招聘 文件备案网站建设方案360浏览器网页版入口 常州 网站建设河南省住房和城乡建设局网站 简洁网站模板下载莱芜金点子广告信息港