3 爱吃肉的大高个

尚未进行身份认证

我要认证

执着于单片机应用、电子设计大赛、嵌入式开发的有理想的咸鱼 邮箱 gyyjx123024@gmail.com

等级
TA的排名 7k+

Android手机“核心科技”---Vibrator(马达)驱动分析

前言我的博客已经断更很久了,因为疫情的原因没能开学,也无法去公司报道实习,在家十分的颓废,学习的时间零零散散,更是没有什么时间来写博客的@@(铁废物)。最近疫情好转,自己也来深圳这边某知名IC厂商(同样也让人喊YES的那个)实习,在手机部门做一些驱动相关内容的工作,以前有做过Linux驱动开发,安卓以前没有接触过,在公司就慢慢开始学习,自己下班回家后后也再分析分析代码,写写博客。因为自己也是一个初学者,在分析上有什么不正确的地方也希望大家可以指正注意:这些博客没有任何从公司电脑上拷贝的资料,参照的代码

2020-07-04 16:46:56

十种常用排序算法总结

前言常用的有十种排序算法,包含了插入、选择、交换、分治、线性五种类别,本篇博客将对这十种排序算法做一个总结,并附带C++代码总体表格分别来看插入排序在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。void InserttSort(int array[], int length){ ...

2020-03-04 17:53:54

WSL+VScode快速搭建Linux下C/C++开发环境

背景自己最近开始了复习数据结构以及刷题,因为不太喜欢Windows下IDE解决所有问题的方式,而且想要再练习练习Makefile的编写以及GDB调试所以需要搭建一个Linux环境来进行代码的编译运行,摆在我面前有三种方案:Linux实体机Linux虚拟机WSL(Windows Subsystem for Linux,Windows下的Linux子系统)为什么选择这个方案搭建Linu...

2020-03-01 22:08:20

cin 在 Ctrl+Z 或 Ctrl+D 后无法获取输入

自己写了一个数字计数的小程序,我先输入一堆数字,输入完成后再输入一个要搜索的数字但是我输入完数字集合按下ctrl+d后,程序就直接结束了,根本不会在第二在输入的地方停留,我在网上查了查,发现很多人遇到了这个问题首先看到的解决方法是,输入完成后加一句cin.clear();但是我用了没有效果,又看到可以再加一句cin.sync();用了以后同样没有效果,前一个的作用是将错误状态更改为...

2020-02-15 09:49:10

Linux嵌入式工程师养成手册-----目录

本篇博客是为了让大家更加便捷去查找某一篇博客的内容前言Linux嵌入式工程师养成手册-----前言基础C语言《C和指针》学习笔记(一)第一章~第六章《C和指针》学习笔记(二)第七~第十章《C和指针》学习笔记(三)第十一章~第十五章《C和指针》学习笔记(四)第十六章~第十七章如何理解C语言的声明c语言中关于const的使用C语言中memcpy和memset的使用详解为什么不能...

2020-02-12 22:34:27

Linux嵌入式工程师养成手册-----前言

为什么会有这些博客自己现在已经要进入大三下学期,很快就会面临秋招,自己从进入大学开始就从事嵌入式相关的开发,从arduino到STM32再到ARM+Linux开发,自己接触了不少的东西,写这些博客一个是为了对自己以往的知识进行一个总结,再一个也是希望可以给入门嵌入式的各位同学们提供一些帮助,都是从无到有,从看别人的到写自己的也是一个分享的过程。可能大家觉得总结并不是特别的重要,但是我想说把知识...

2020-02-12 21:51:33

2019年终总结与2020年展望

前言转眼间一年就过去了,又是拖到了1.14号才写年终总结,已经期末考试结束回到了家了,可以好好回顾一下2019年,然后对2020做一些规划和展望2019 总结收获我前半年曾经一直为了电赛废寝忘食的准备,为了得奖整夜整夜的泡在实验室,期间忽略了女朋友的感受,最后到了比赛的时候也是太过于功利,太看中结果,但是最后真的想通了,重要的不是结果而是奋斗其中的过程,在准备电赛时认识了很多小伙伴,也在准...

2020-01-15 22:19:33

ROCK PI4介绍与上手

在五月份左右的时候将自己的树莓派2B出掉了,在暑假时想买树莓派4B但是拍下了一直不发货而且还爆出了USB type-C口的设计缺陷就默默选择了退款,后来发现了ROCK PI4这款板子,样子看上去很像是树莓派,不过采用了不同的SOC方案,纸面性能不错很让人眼馋ROCK PI4是Radxa推出的开源单板计算机,采用的是瑞芯微的RK3399的6核(2A72+4A53)高性能SOC,具体参数如下可以...

2019-12-18 19:15:17

为什么不能在中断中使用printf--不可重入函数

前言前两天在笔试的时候遇到了关于能否在中断中使用printf的问题,当时有点蒙,笔试结束后查阅了资料,这里进行以下总结可重入函数和不可重入函数printf不能在中断中被调用的原因是它是一个不可重入函数,而在中断中要避免调用不可重入函数,首先我们先说说什么是可重入函数,什么是不可重入函数简单说来,区分一个函数是否可重入就是看这个函数能否在未返回的时候再次被调用。而造成一个函数不可重入的原因往...

2019-12-16 20:07:25

Linux驱动开发(十九):SPI驱动

#简介Linux下的SPI驱动和I2C驱动类似,也是分为主机控制器驱动和设备驱动在LInux

2019-12-16 18:43:29

Linux驱动开发(十八):I2C驱动

简介I2C是我们在单片机开发时时常会用到的通讯接口,用来与一些字符型设备进行通信,比如:陀螺仪、温度传感器等等,同样的在Linux下I2C驱动也是十分重要的。有了操作系统的加持,我们不用像在32上那样去软件实现IIC协议,更多的是去学习Linux I2c的驱动框架,首先我们先来了解一下它的驱动框架,如下图Linux 的I2C体系结构主要分为3个部分I2C核心提供了I2C总线驱动和设备注...

2019-11-27 20:15:25

Linux驱动开发(十七):LCD驱动(Framebuffer子系统)

Framebuffer设备在裸机开发LCD的时候要初始化eLCDIF控制器,重点是LCD屏幕width、height、hspw、hbp、hfp、vspw、vbp、vfpLinux中的应用程序最终通过操作LCD的显存来实现在LCD上显示字符、图片等信息,因为虚拟内存的存在,驱动程序设置的显存和应用程序访问的显存要是同一片物理内存Framebuffer子系统,帧缓冲,简称fb,fb是一种机制,将...

2019-11-26 20:30:14

Linux驱动开发(十六):INPUT子系统

简介输入设备是典型的字符驱动,其工作原理一般是在按键、触摸等动作发生时在底层产生一个中断(或者驱动通过Timer定时查询),然后CPU通过SPI、I2C或外部存储器总线读取键值、坐标等数据,并将它们放到一个缓冲区,字符设备驱动管理该缓冲区,而驱动的read()接口让用户可以读取它们的键值、坐标等数据在这些工作中只有中断、读取键值(坐标值)是与设备相关的,而输入设备的缓冲区管理以及字符设备驱动的...

2019-11-24 22:12:50

Linux驱动开发(十五):异步通知

简介前面使用阻塞和非阻塞的方式来读取驱动中的按键值都是应用程序主动读取的,对于非阻塞的方式还需要应用程序通过poll函数不断的轮询Linux内核提供了异步通知这个机制来实现驱动程序主动向应用程序发出通知,报告自己可以访问,然后应用程序再从驱动程序中读取或写入数据,软件中断的方式”信号“类似于硬件上的中断,是软件层面上对中断的模拟,设备可以被读写时发出信号阻塞、非阻塞、异步通知是针对不同的场...

2019-11-19 16:41:24

Linux驱动开发(十四):阻塞与非阻塞IO——轮询操作

非阻塞IO非阻塞式IO则会轮询等待知道设备资源可以使用或者直接放弃如果用户以非阻塞方式访问设备提供轮询的处理方式可以通过select、epoll、poll函数来查询设备是否可以操作到应用程序调用以上三个函数 驱动中的poll函数就会执行,我们在驱动中需要编写poll函数三种IO多路复用的机制比较select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,...

2019-11-19 14:54:06

Linux驱动开发(十三):阻塞与非阻塞IO——等待队列

阻塞与非阻塞IO阻塞式IO在请求资源时如果不能获取到设备资源,会将应用程序挂起,知道资源可以被获取非阻塞式IO则会轮询等待知道设备资源可以使用或者直接放弃使用非阻塞访问从设备读取数据,当设备不可用或数据位准备好时会立即返回错误码,表示数据读取失败,应用程序会再次读取数据,一直往复循环,直到数据读取成功调用read函数的时候加上O_NONBLOCK就是非阻塞方式打开这篇博客先记录阻塞式...

2019-11-17 17:28:47

Linux驱动开发(十二):MISC杂项设备驱动

简介杂项设备驱动,就是最简单的字符设备驱动,通常嵌套在platform总线驱动中实现复杂的驱动主设备号都为10,不同的设备使用不同的从设备号MISC设备驱动用于解决字符设备驱动不断增加设备号紧张的问题MISC设备会自动创建cdev,不需要以前那样手动创建采用MISC设备驱动可以简化字符设备驱动的编写驱动框架我们需要向Linux内核注册一个miscdevice设备,miscdevice...

2019-11-17 14:56:48

Linux驱动开发(十一):pinctrl子系统和GPIO子系统

pinctrl子系统和GPIO子系统简介简介配置寄存器来控制IO的方式太过于原始,Linux内核提供了pinctrl子系统和gpio子系统用于GPIO驱动,当然pinctrl子系统负责的就不仅仅是GPIO的驱动了而是所有pin脚的配置。pinctrl子系统是随着设备树的加入而加入的,依赖于设备树。GPIO子系统在之前的内核中也是存在的,但是pinctrl子系统的加入GPIO子系统也是有很大的...

2019-10-26 17:00:01

Linux驱动开发(十):设备树下的platform平台设备驱动

这里写自定义目录标题简介关于platform驱动框架bus、driver、device驱动的分层platform驱动模型platform总线platform驱动platform设备引入设备树后的变化实验代码与分析实验代码代码分析总结简介在今年五月份我在4412上学习了platform总线设备的驱动编写,了解了引入platform总线的目的以及带来的方便之处,初步了解了Linux内核总线、设备、...

2019-11-14 16:10:51

Linux设备树相关操作

Linux设备树相关操作以及驱动开发流程简介相关文件组成和介绍dts和bingings设备树文件之间的关系官方文档设备树dts的基本构造节点和根节点简介最近在学习设备树以及设备基于设备树的驱动开发,其实我是一直在纠结要不要写这篇博客的,因为自己了解的仅仅是设备树的一些定义,一些操作,还没有去看源码,这样写出来的博客并不是太有深度的,但是还是想记录一下自己的学习历程,对自己这一周多的学习大概做一...

2019-10-30 19:50:25

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。