- 博客(8)
- 收藏
- 关注
原创 USB枚举过程
学习USB对我这个小白来说还是有点吃力的,不过路还是要一步一步的走下去。我把USB分为三层:gadget 层:驱动层最主要的结构是struct usb_composite_driver,这个结构在这层定义,并且实现结构中的各个函数。usb设备层:设备层最主要的数据结构是struct usb_composite_dev与usb_gadget_driver。前一个代表一个USB设备,而后一个是G...
2020-03-29 16:24:43
259
原创 Linux调度算法
Linux调度器是以模块方式提供的,目的是允许不同类型的进程可以有针对性的选择相应的算法。模块化结构被成为调度器类,每个调度器都有一个优先级,可以调度自己范畴的进程。完全公平调度(CFS)是针对普通进程的调度类,对时间片分配的方式进行了设计。nice值(优先级)只是当作获取CPU的权重,在运行时,会计算需要运行的时间,时间短会先运行。如果进程数量无限多时,所以会有许多的切换开销。...
2020-03-18 00:04:01
379
原创 LCD屏8080时序
LCD屏常用的时序为8080时序和6800时序, 6800总线又叫做摩托罗拉总线、8080时序也叫做英特尔总线。Intel 总线的控制线有四根,RD 写使能, WR 读使能, ALE 地址锁存, CS 片选。而 moto 总线只有 三根,R/W 读/写,ALE 地址锁存,CE 片使能。8080总线存在许多接口8/9/16/18位接口8080时序读写过程先将读写的数据类型RS设置为高(数据)/...
2020-02-28 23:12:30
7965
4
原创 驱动中的链表
今天被链表掀翻一地,原来许多我以为的,都不是我以为的。最近在提交代码中煎熬,也可以说难忘吧!不过,其实还是学到了许多东西,在这还是感谢我的老大吧!链表有很多种不同的类型:单向链表,双向链表以及循环链表使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大...
2020-02-26 21:45:15
306
原创 Makefile检验小技巧
编译makefile时,通常会遇到满屏的信息,有时候编译出错的时候,特别是由于项目中的makefile写错而导致的问题,我们可以重定向到文件中:#打卡第四天 欢迎一起学习 qq:1667869702#...
2020-02-26 02:28:38
211
原创 SPI驱动编写注意事项分享
作为当代优秀程序员,应具备优秀的大局观,审美观。不过像我这种刚入行的菜鸟,还应具备一定的抗压能力。昨天说了SPI的大致,其实SPI协议对大家来说确实十分简单,但要把它写的全面也是需要考虑很多的,也有挺多注意的地方的。SPI驱动应具备的功能特性SPI的波特率可以调节片选脚的有效电平可以选择传输数据的位宽发送接收的大小端选择相位与极性的配置发送接收长度不等功能特性的实现:波特率的调...
2020-02-24 23:16:41
766
原创 FreeRTOS SPI 时序以及模拟SPI时序
SPI(Serial Peripheral Interface),顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线(MISO, MOSI, CLK, CS)可以不用CS片选引脚也是三线式,SPI有时候可以不用MISO, MOSI,中的一个,但CLK的引脚一定需要存在。SPI节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这...
2020-02-24 00:55:51
2856
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人