自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 系统下的驱动开发模式

例如linux操作系统中,所有的设备驱动都是注册一个devfs类型的对象,让设备以/dev/..的形式出现,用户只需要操作这个设备名字便可以实现一系列的开发,而驱动卸载就是把这个已经注册的devfs类型的对象进行反注册,即删除该对象即可。实现这些函数方法后,再初始化devfs_obj_str结构体,就可以调用驱动注册函数进行注册了。因不同的操作系统而结构名字和类型以及成员数量等不同,但是整体驱动开发思路是如此。重点是掌握这种思维。devfs:将设备虚拟化为文件,并将文件操作转化为设备操作。

2023-10-20 17:19:56 45 1

原创 Volatile关键字的作用

正确的做法应如下图所示。编译器在编译这段代码时,并不一定会将a,b,c,d这4个变量按照func函数里的赋值顺序来赋值,而可能是随机顺序赋值的,而如果在abcd声明的时候加上volatile关键字的话,func函数赋值会严格按顺序来。当我们在跑多线程的时候,需要对利用线程之前需要获取一定的过程值,此时可能会因为编译器的优化而带来一些问题,因此为了代码在不通的编译器下通用,便可以加上volatile关键,确保稳定。下面来举一个嵌入式开发中常遇到的可能由于编译器优化的重排序bug,如下图所示代码。

2023-10-20 11:00:41 47 1

原创 关于单片机串口接收不固定字节长度的解决方案

之前老是有个问题困惑着小编,串口这种一字节一字节的接收和发送的机制,而在实际应用中如果收发双方不制定一个协议,没有帧头,帧尾做一帧数据接收开始和结束的标准。或者收发数据长度不固定,怎么去确定每一帧长度不同的帧呢?面对这种每次发送长度不固定的情况,我最开始采用的是定时器中断加串口中断的方式。 如现在来了一帧长度为86字节的数据,我在串口接收中断中将这86个字节一一入循环队列,假设循环队列的长度是256个字节,现在86个字节已经接收完毕,那么,我在哪里出队来确保这86个字节能一次性出完呢,很多人可..

2022-06-08 11:23:46 2139

原创 关于如何用keil生成静态库

1、打开keil,新建一个工程,里面放一些需要实现功能的c文件。以及对应的头文件。2、点击魔术棒的Output选项,点击Create Library3、点击编译,可以看到obj目录下生成了对应的. lib库文件。4、在需要用到该库中的功能即可吧lib加进去,需要哪些功能就把对应的头文件拿进来配好环境,即可调用库里面的功能函数了。。。...

2022-06-01 15:29:36 1964

原创 成神之路呀

从今天开始,今天每日遇到问题总结,学习知识点总结,渴望进阶。

2022-05-31 23:12:48 93

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除