![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
驱动
文章平均质量分 71
ZhongNanJingYun_Blog
这个作者很懒,什么都没留下…
展开
-
STM32CubeMxIDE+ Eclipse 编译下载配置
嵌入式开发环境参考博客安装java环境https://www.java.com/zh-CN/download/STM32 软件下载https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.htmlSTM原创 2021-02-08 11:09:56 · 879 阅读 · 0 评论 -
Linux设备驱动中的阻塞和同步机制
阻塞非阻塞阻塞调用是指调用结果返回之前,当前线程会被挂起,函数只有在得到结果之后才会返回。非阻塞指在不能得到结果之前,该函数不会阻塞当前线程,二回立刻返回。阻塞对象上可以有非阻塞的调用方式,我们可以通过一定的API去轮询状态,在适当的时候调用阻塞函数,可以避免阻塞。而对于非阻塞对象,调用特殊的函数也可以进入阻塞调用。等待队列等待队列的基本数据结构是一个双向链表,...原创 2019-08-20 23:51:37 · 408 阅读 · 0 评论 -
Linux 设备驱动开发 --01基本概念
本文摘录参考书《Linux设备驱动开发详解》--宋宝华驱动程序就是搭起应用软件和硬件之间的桥梁,做到软硬隔离。1. 无操作系统 的驱动功能单一的硬件设备,比如单片机是无需Linux操作系统的,其驱动程序可以理解为将点亮一个LED灯的写寄存器程序抽象出来,封装为一个借口,应用软件只需要调用该接口即可实现LED灯的控制,其架构可以理解为:2. 有操作系统的驱动1. 一个复...原创 2019-08-12 22:16:21 · 330 阅读 · 0 评论 -
Linux 设备驱动中的并发控制
并发与竞争并发是指操作系统中,一个时间段中有几个程序都处于启动运行到运行完毕间,且这几个程序都是同一个处理器上运行,但任何一个时间点只有一个程序在处理机器上运行。并发容易导致竞争问题。竞争是两个或者多个进程同时访问一个资源,从而引起的资源错误。原子操作所谓的原子操作就是该操作系统不会在执行完毕前被任何其他任务或者事件打断。也就是说,原子操作是一种不可以被打断的操作。原子操作...原创 2019-08-19 23:45:40 · 187 阅读 · 0 评论 -
Linux内核模块简介概念--03
Linux提供了这样一个机制,模块本身不编译在内核中,从而减小了内核的大小,模块可以被加载,与内核配合使用。1. 编写测试用例#include<linux/kernel.h>#include<linux/init.h>#include<linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static i...原创 2019-08-14 00:11:39 · 290 阅读 · 0 评论 -
Linux 内核及内核编程概念--02
进程调度精确调度控制系统中的多个进程对CPU的访问使得多个进程能在CPU中微观串行,宏观并行的执行。//启动内核的函数int kernel_thread(int (*fn)(void*), void* arg, unsigned long flags);内存管理内存管理的主要作用是控制多个进程安全共享主内存区域。当CPU提供内存管理单元(MMU)时,Linux内存...原创 2019-08-13 23:22:46 · 83 阅读 · 0 评论 -
Linux字符设备驱动开发框架
仅供参考#include <linux/moducle.h>#include <linux/types.h>#include <fs.h>#include <linux/errno.h>#include <linux/mm.h>#include <linux/sched.h>#include <l...原创 2019-08-18 20:13:29 · 127 阅读 · 0 评论 -
Linux 驱动之编译到内核
当编译了模块没有问题时,如果想要随内核一起启动,需要将模块编译到内核中。具体步骤如下:1. 编写Linux驱动模块2. 测试模块的功能是否正常3. 将驱动文件拷贝到Linux内核源码的驱动模块目录下,4. 新建一个属于自己的驱动模块的目录5. 添加本目录下的Kconfig和Makefile文件6. 修改上级目录,driver目录下的Kconfig和Makefile文件...原创 2019-08-18 17:45:42 · 283 阅读 · 0 评论 -
Linux 驱动之模块参数
模块时为了完成某种特定的任务而设计的,其功能比较单一,为了丰富系统的功能,所以模块之间唱歌需要通信,它们之间可以共享数据,变量,也可以调用对方提供的功能参数。模块2的加载过程如下:1. 使用insmod 加载模块22. 内核为模块2分配空间,然后将模块的代码和数据装入分配的内存中3. 内核发现符号表中有函数1,函数2可以导出,于是将其内存地址记录在内核符号表中模...原创 2019-08-18 17:14:37 · 571 阅读 · 0 评论 -
Linux 系统与Intel 网卡驱动问题 ---无法识别MAC
在装机时,Debian9的系统,提示网卡网卡无法用,MAC地址无法获取查看网卡型号为15bb,而Intel的官网上没有找到,手动编译之前的版本提示Linux kernel不兼容。检查驱动也确实无法加载。解决方法如下:下载相应的安装包https://downloadcenter.intel.com/download/27158/Intel-Network-Adapter-...原创 2019-06-17 19:59:55 · 2435 阅读 · 0 评论 -
bootloader 之 U-boot 下载地址
下载链接:http://ftp.denx.de/pub/u-boot/原创 2019-08-18 17:47:53 · 363 阅读 · 0 评论