rk3568
文章平均质量分 82
本专栏以rk3568开发板为例,进行驱动开发讲解。
free(me)
这个作者很懒,什么都没留下…
展开
-
rk3568中断irq
在单片机中,中断的过程:①、使能中断,初始化相应的寄存器②、编写中断服务函数,中断发生以后相应的中断服务函数就会执行。原创 2024-06-05 09:49:13 · 857 阅读 · 0 评论 -
rk3568定时器
定时器是一个很常用的功能,需要周期性处理的工作都要用到定时器,Linux 内核定时器采用系统时钟来实现。Linux 内核定时器使用很简单,只需要提供超时时间(相当于定时值)和定时处理函数即可,当超时时间到了以后设置的定时处理函数就会执行,和我们使用硬件定时器的套路一样,只是使用内核定时器不需要做一大堆的寄存器初始化工作。在使用内核定时器的时候要注意一点,内核定时器并不是周期性运行的,超时以后就会自动关闭,因此如果想要实现周期性定时,那么就需要在定时处理函数中重新开启定时器。/**/原创 2024-06-05 09:27:35 · 1099 阅读 · 0 评论 -
rk3568按键输入
本文记录的是按键按键输入实验。原创 2024-06-05 09:14:24 · 528 阅读 · 0 评论 -
rk3568_mutex
本文记录的是rk3568开发板基础上做的mutex实验mutex是互斥体,它是比信号量semaphore更加专业的机制。在我们编写Linux驱动的时候遇到需要互斥的地方建议使用mutex。mutex 可以导致休眠,因此不能在中断中使用 mutex,中断中只能使用自旋锁。和信号量一样,mutex 保护的临界区可以调用引起阻塞的 API 函数。因为一次只有一个线程可以持有 mutex,因此,必须由 mutex 的持有者释放 mutex。并且 mutex 不能递归上锁和解锁。原创 2024-05-28 22:27:57 · 514 阅读 · 0 评论 -
rk3568_semaphore
本文记录rk3568开发板的信号量实验信号量是同步的一种方式,常常用于控制对共享资源的访问。举个例子:停车场的停车位有100个,这100个停车位就是共享资源,信号量的值最多等于100。当有车进停车场,信号量加1;当有车出去停车场,信号量减1信号量特点:• 信号量可以使线程进入休眠状态,高CPU使用效率,不需要一直占用CPU资源。提高CPU使用效率,不需要一直占用CPU资源。• 不能用于中断,因为信号量会引起休眠,中断不能休眠。原创 2024-05-28 22:20:52 · 1063 阅读 · 0 评论 -
rk3568_spinlock
本文记录在rk3568开发板做的自旋锁实验。通过自旋锁控制state变量来限制只有一个应用程序来打开驱动设备。自旋锁缺点:浪费CPU事件,降低系统性能。若是线程长时间持有锁,那么自旋锁就不适合用了。自旋锁应用场景:一般是对结构体变量进行加锁控制。注意:①被自旋锁保护的临界区一定不能调用任何能够引起睡眠和阻塞的API函数,否则会导致死锁现象的发生。②若线程A执行自旋锁的过程中,被中断打断了,中断也有执行自旋锁的操作,那么为了防止死锁的出现,最好的解决办法是获取锁之前,关闭本地中断。原创 2024-05-27 00:09:49 · 810 阅读 · 0 评论 -
rk3568_atomic
本文记录的是正点原子rk3568开发板的atomic实验提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。原子操作避免了 全局变量被其他线程修改的情况。原创 2024-05-26 02:50:20 · 904 阅读 · 0 评论