驱动开发时候,尽量选择对应操作系统内核的Linux系统作为上位机平台 下载源码与编译 源码的下载可以从网站:https://mirrors.edge.kernel.org/pub/linux/kernel...没有编译过的内核,驱动开发过程中进行编译可能有错误,找不到文件等。 编写一个最简单的驱动 如下是hello.c文件的驱动程序。其中声明了证书,和模块加载后与退出时应该执行的函数。...#include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_init...卸载命令为rmmod xxx 模块之间的依赖通信 以下为add_sub.c #include #include #include"add_sub.h...然后修改上层的Makefile文件,添加如下内容: obj-$(ADD_SUB) += add_sub_Kconfig/ 就可以在主目录下执行make menuconfig后,在驱动下找到对应的驱动和编译信息了
我们今天所要说的是linux驱动编写。...现在linux驱动比较流行,主要有几个方面的原因:1)linux平台免费,很多芯片厂商希望linux平台支持自己的产品;2)最近android平台很火,这在无形之中帮了linux的忙,搞linux驱动的人也开始多了起来...那么,此时很多朋友可能就有疑问了,搞芯片驱动设计难道真的要懂linux吗? 其实驱动和linux本来就是两码事。...现在,linux驱动开发过程已经发展得很成熟了,除了很多的demo代码、书籍,网上还有很多的视频可以学习。其中,我个人比较喜欢的还是宋宝华、韦东山的书。...说了这么多,大家可能问怎么做好linux驱动的开发工作呢?
《Linux设备驱动》 -- 也就是我们所说的LDD3了; 适合一定基础的人阅读,深入学习Linux不可或缺的知识; 《UNIX环境高级编程》 这本书并不是面对linux内核的书,但是我是从最基础看这本书逐步入门的...; 《Linux内核完全剖析》 本书对早期Linux内核(v0.12)全部代码文件进行了详细、全面的注释和说明,旨在帮助读者用较短的时间对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux...虽然选择的版本较低,但该内核已能够正常编译运行,并且其中已包括了Linux工作原理的精髓。...《Linux那些事》 由复旦一群大神所写,团队为fudan_adc,主要写了我是xxx系列,本人比较喜欢对USB 部分的描述,不得不说大神就是大神。...《Linux设备驱动开发详解》 由华清远见出身的大神所写,宋宝华大神所写,华清远见出来的技术杠杠的。 《深入理解计算机操作系统》 当然啦,不得不说大学学过的操作系统啊!!!!
小编在这里给大家盘点一下PyTorch比较好的入门书籍,方便大家查阅学习。 01 深度学习框架PyTorch:入门与实践 ?...这本书是一位很年轻的小伙子写的: 【陈云】Python程序员、Linux爱好者和PyTorch源码贡献者。主要研究方向包括计算机视觉和机器学习。...我们看一些评价: (1)粗略看了下,还是要查API好一点,这种书只能说是入门书。 (2)适合带你入门的,不一定是大牛。而是刚踩过坑的人。...如果你想看这本书的话,一个比较好的使用策略是直接看源码: https://github.com/chenyuntc/pytorch-book 02 深度学习入门之PyTorch ?...发现了一个比较中肯的评价: 如果对PyTorch完全不懂,而且对深度学习了解一些,作为PyTorch入门书还是不错的。
嵌入式 Arm Linux 入门必读书籍推荐 前段时间有个刚开始学习 Arm Linux 的同学问我:对于还处于入门阶段的新手,有什么建议。并让我推荐一些好的书籍。...得益于入门时期的特殊经历,我对业内的相关书籍一直比较关注,看到哪位大牛出版了好书,就忍不住要买回来,看到网上有对应的 PDF 版本,也一定会想办法下下来。...这些书籍我按照 Arm Linux 系统所需要的知识结构,做了分类: Linux 系统环境 Git 版本管理 C 语言和汇编 Arm 体系结构 Linux 应用编程 Linux 内核基础原理 Linux...我推荐了五本书: 《Linux 内核设计与实现》 《Linux 设备驱动程序》 《深入 Linux 内核架构》 《深入Linux 设备驱动程序内核机制》 《Mastering Linux Kernel...《深入 Linux 设备驱动程序内核机制》这本书是一个中国人写的,基于 Linux 2.6.39,也是讲 Linux 设备驱动的基本原理和组件,对于做驱动开发来说,还是值得一读,而且中国人写的书在思维也和大家更接近
Linux驱动开发的学习就会如步青云。...需要掌握系统移植(Uboot、Linux Kernel的移植和裁剪、根文件系统的构建)、Linux驱动及内核开发(字符设备驱动、块设备驱动、网络设备驱动)应用开发由于博主能力有限所了解的也不多。...每一个系统调用,在驱动中都有与之对应的一个驱动函数,在 Linux 内核文件 include/linux/fs.h 中有个叫做 file_operations 的结构体,此结构体就是 Linux 内核驱动操作函数集合...只是在 Linux 驱动开发中我们需要按照其规定的框架来编写驱动,所以说学 Linux 驱动开发重点是学习其驱动框架。...驱动模块的加载和卸载 Linux 驱动有两种运行方式,第一种就是将驱动编译进 Linux 内核中,这样当 Linux 内核启动的时候就会自动运行驱动程序。
可作入门,但即使是高手,也应看看,学习作者分析问题的方法和思想。其实是无数次印刷了,经典不能错过。...本书是世面上极少见的讲述内部网关路由技术的经典书籍,内容极为丰富。对于想清楚的了解内部网关协议的工作原理以及想探究网络通信事物的本质的人来说是一本不可或缺的好书。...网络体系结构:linux内核中网络协议的设计与实现》 ?...Protocols in the Linux Kernel 书名: Linux网络体系结构 说明:翻译的很不好,建议看原版,可以下电子版。...一本在kernel实现网络功能的基础书籍,最好还是看英文版的,翻译的实在太烂了。有条件的还是看原版吧,没办法啊,中国的此类书籍基本上落后老美3-4年。结合linux源代码分析一书收获更多。
全书以案例驱动的方式讲解了标准库中数百个模块的使用方法(如何工作)和工作原理(为什么要这样工作),比标准库的官方文档更容易理解,为Python程序员熟练掌握和使用这些模块提供了绝佳指导。...Python学习手册 第4版 《Python学习手册(第4版)》,Python入门必读之作,位列美亚软件编程畅销榜首,《Python编程》姊妹篇,详细讲解各种语言特性。...这一版采用Python3,并对全书结构进行了优化,既可作为入门程序设计课的入门教材,也可供Python爱好者自学参考。
1 提到了关于Linux的设备驱动,那么在Linux中I/O设备可以分为两类:块设备和字符设备。...(可以参见我之前写的文章:Linux文件编程)。...(非必须) 我们先看看一个简单的驱动程序的框架: #include //定义了module_init #include //最基本的头文件...第二个问题,解决起来也不是很困难,在Linux中提供了一种机制是udev,可以用于自动的创建设备,在嵌入式Linux的文件系统,比如busybox,也有一套简化版的机制,是mdev,在配置文件系统的时候会进行相应的配置...#include #include #include #include
缘起 在AIclub看到一篇机器学习入门的文章,回想自己磕磕碰碰走过的弯路,颇有感触,因此对自己从懵懂到稍稍入门过程中看过的教程做一个简单的介绍,希望帮到后来人; 脉络 机器学习这个词起源于20世纪50...则是神经网络因为硬件条件、训练算法的提升的有一次走红,所以不单独介绍; 从实际的业务来看,机器学习算法更多是以一种数据处理、数据分析方案的角色出现,这个阶段统计学习相关的算法是绝对的主流;本文也是从这个角度出发来给想入门而不得的同学提供一个入门的阅读...list; 推介 限定在统计学习这个范围后,机器学习所涉及到的只是主要包括:数学+算法+编程;其中数学又可分为分析+概率;汇总起来,数学分析+概率统计+算法+编程大概是机器学习入门的基本要求了,下面从这三个角度给出笔者看过觉得比较优质的一些书籍供大家参考...,似乎八十年代贝叶斯在国内火过一段时间,然后就沉寂下去了,导致这块我们实际理论知之甚少,如果不是研究lda的时候反复查找才找到这两本书,估计我也是傻乎乎的停留在贝叶斯公式的基础上了; 3)算法 这一块书籍特别多...,重点推荐两部我深度看过的和两部还没看但是绝对是经典的书籍 统计学习方法:李航博士写的,李航是华为诺亚方舟的负责人,在统计学习上的造诣非同一般,这本书以极短的篇幅,系统介绍了几乎所有常见算法的数学原理和证明
从这两个子系统开始学习驱动开发是个不错的入门选择。...pinctrl 的作用: 引脚复用,例如某个引脚即可用作为普通的gpio,也可以作为UART的TX; 引脚配置,一般包括上下拉、驱动能力等; ?...,例如 leds-gpio.c、gpio_keys.c 等 legacy.rst 描述 legacy gpio 接口 注:本文基于 Linux-4.19。...完整的接口定义位于 linux/gpio/consumer.h,大约共有 70个 API。...点击查看大图 正常情况下,驱动工程师不需要了解 gpio chip driver 和 gpiolib: 驱动工程师负责编写 gpio consumer drvier; 芯片厂商的 bsp 工程师负责编写
大家如果打开kernel usb host目录,就会发现下面包含了ohci,uhci,ehci,xhci,whci等多种形式的控制器驱动。...1、代码分布 drivers/usb目录下面,host目录包括了host驱动代码,core目录包含了主要的api接口代码,而其他目录则主要是device驱动代码。...2、device驱动怎么看 device驱动大多数和上层协议有关,不涉及到具体的寄存器读写。...如果从代码结构来说,上面这段分析算是入门了。...但是,如果要深入了解usb host&device驱动,那么除了这些代码逻辑,那么还要熟读usb协议手册,更重要的学会用catc协议分析仪真正地去了解usb是如何发包和收包的。
好了,言归正传,今天要分享的是linux驱动中的字符设备驱动,我们知道,对于嵌入式linux开发来说,主要是分为应用开发和驱动开发,在前面的文章当中,都是在介绍应用开发,因为应用开发相对来说难度更低一些...前面的讲的应用开发虽然不是特别深(以后会慢慢加深),但是大致覆盖了涉及到的内容,还有一个线程没有讲,这个到后面再补充,从今天开始就正式进入驱动开发,linux驱动有字符设备驱动、块设备驱动和网络设备驱动...1、准备工作 首先要准备linux内核源码,因为驱动模块的安装必须是在自己的系统上编译得到的内核源码树。...2、了解驱动模块的代码结构和安装、卸载 驱动模块是以.ko为后缀的文件,驱动代码编译好之后就会得到.ko文件,然后使用命令insmod,就可以安装到linux系统中,使用rmmod命令就可以卸载模块,...完整的led驱动代码如下(来源:野火电子): #include #include #include #include
驱动。和Linux操作系统有一定的了解。这一阶段我们有三个问题需要解决: 1.什么是Linux操作系统。 2.什么是Linux设备驱动。 3.关于串口的种种。 要了解这些概念。...一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。设备驱动程序可以完全访问硬件。.../linux/driver/tty/serial/samsung.c) driver是驱动程序的目录。如图所示: ? 前文对linux设备驱动程序有了一个大概的描述。...下面我们具体看一下linux下的驱动。...相信读者对于Linux下的tty子系统已经有一个概观了。下面是这个uart驱动的总图。结合数据结构的调用链。Linux内核完成了驱动模型和特定硬件的分离: ? 串口驱动数据结构总图: ?
Linux内核将 I2C 驱动分为两部分: I2C 总线驱动, I2C总线驱动就是SOC的 I2C控制器驱动,也叫做 I2C适配器驱动。...I2C驱动 i2c_driver 类似 platform_driver,是我们编写 I2C 设备驱动重点要处理的内容, i2c_driver 结构体定义在 include/linux/i2c.h 文件中...Linux I2C总线的运行机制: 注册I2C驱动 将I2C驱动添加到I2C总线的驱动链表中 遍历I2C总线上的设备链表,根据i2c_device_match函数进行匹配,如果匹配调用i2c_device_probe...对于我们 I2C 设备驱动编写人来说,重点工作就是构建i2c_driver,构建完成以后需要向Linux内核注册这个i2c_driver。 那么如何注册呢?...设备驱动的时候需要将前面注册的 i2c_driver 从 Linux 内核中注销掉,需要用到i2c_del_driver 函数,此函数原型如下: void i2c_del_driver(struct
第一时间看干货文章 1 Linux内核将 I2C 驱动分为两部分: I2C 总线驱动, I2C总线驱动就是SOC的 I2C控制器驱动,也叫做 I2C适配器驱动。...I2C驱动 i2c_driver 类似 platform_driver,是我们编写 I2C 设备驱动重点要处理的内容, i2c_driver 结构体定义在 include/linux/i2c.h 文件中...Linux I2C总线的运行机制: 注册I2C驱动 将I2C驱动添加到I2C总线的驱动链表中 遍历I2C总线上的设备链表,根据i2c_device_match函数进行匹配,如果匹配调用i2c_device_probe...对于我们 I2C 设备驱动编写人来说,重点工作就是构建i2c_driver,构建完成以后需要向Linux内核注册这个i2c_driver。 那么如何注册呢?...设备驱动的时候需要将前面注册的 i2c_driver 从 Linux 内核中注销掉,需要用到i2c_del_driver 函数,此函数原型如下: void i2c_del_driver(struct
KERNEL_DIR=/home/jianfei/workdir/linux_driver/ebf-buster-linux/build_image/build ARCH=arm CROSS_COMPILE...=arm-linux-gnueabihf- export ARCH CROSS_COMPILE obj-m := led_driver.o app_obj=led all: $(MAKE) -...编译好了之后就会生成一个.ko的驱动模块文件,我们就可以在linux系统中去安装这个模块,这在上一节已经提到过。...4、验证驱动程序工作是否正常 安装好这个模块之后,如何验证这个驱动模块能否正常工作呢?...好了,以上就是字符设备驱动开发的大致流程,后面将会逐步完善代码,包括建立一些框架什么的。总的来说,驱动部分应该只实现最基本的驱动硬件功能,而应用层部分就要完成用户的各种需求。
1、SQL入门 在准备成为MySQL DBA之前,能熟练的编写SQL是一个必要条件。...可以顺序的作为学习书籍,也可以之后作为工具书籍查阅。 The Art of SQL 将SQL调优模拟成一场战役,进行战术分析。...2、SQL进阶&精通 如果你已经熟练掌握了基本的SQL编写技巧,就可以进入对于MySQL产品本身的入门学习了 推荐书籍: High Performance MySQL MySQL界的圣经,目前已经出到第三版...深入浅出MySQL数据库开发、优化与管理维护 中文原创书籍中比较适合入门的一本。教粗浅的介绍了MySQL的相关特性,比较适合MySQL运维的入门。...MOOC 各类公开课程网站都会有免费得MySQL入门课程试听。这里就不一一列举了。
SQL 入门在准备成为MySQL DBA之前,能熟练的编写SQL是一个必要条件。exists 和 join之间的等价转换;基本的行列转换;SQL 循环等的熟练掌握对之后的运维和调优工作都有很大的帮助。...推荐书籍:1. SQL Cookbook [原版下载] [中文版下载]一本循序渐进的SQL指导手册。每一种业务需求,书中都用MySQL,SQL Server,Oracle三种语法进行解析。...可以顺序的作为学习书籍,也可以之后作为工具书籍查阅。2. The Art of SQL [原版下载] [中文版购买]将SQL调优模拟成一场战役,进行战术分析。...SQL应用重构 [原版下载]MySQL 入门&精通如果你已经熟练掌握了基本的SQL编写技巧,就可以进入对于MySQL产品本身的入门学习了推荐书籍:1....深入浅出MySQL数据库开发、优化与管理维护 [下载地址]教粗浅的介绍了MySQL的相关特性,比较适合MySQL运维的入门3.
1、SQL入门 在准备成为MySQL DBA之前,能熟练的编写SQL是一个必要条件。...可以顺序的作为学习书籍,也可以之后作为工具书籍查阅。 2. The Art of SQL 将SQL调优模拟成一场战役,进行战术分析。...2、SQL进阶&精通 如果你已经熟练掌握了基本的SQL编写技巧,就可以进入对于MySQL产品本身的入门学习了 推荐书籍: 1....深入浅出MySQL数据库开发、优化与管理维护 中文原创书籍中比较适合入门的一本。教粗浅的介绍了MySQL的相关特性,比较适合MySQL运维的入门。 3....MOOC 各类公开课程网站都会有免费得MySQL入门课程试听。这里就不一一列举了。 4、运维&数据思想 推荐书籍: 1.
领取专属 10元无门槛券
手把手带您无忧上云