- 博客(13)
- 资源 (14)
- 收藏
- 关注
原创 嵌入式Linux应用学习(一)------QT控制LED设备硬件
你好!这里是风筝的博客,欢迎和我一起多多交流。Windows下QT Creator版本为5.3.2Linux下QT Creator版本为5.6首先,在Windows下编译好应用程序:控制LED,当然要有LED小灯的驱动了,在这里: 嵌入式Linux驱动学习笔记(一)------第一个LED驱动程序驱动程序不变,
2017-07-31 17:58:10 8292 7
原创 嵌入式Linux驱动笔记(七)------浅析tty与uart框架
你好!这里是风筝的博客,欢迎和我一起多多交流。 看一个驱动模型,先从注册函数看起。先看下设备文件:在init.c(arch/arm/plat-samsung)文件,有:static struct cpu_table *cpu;注意哦,这里有个结构体指针变量cpu,一定要记住,有大用!!!将下来:static int __init s3c_arch_init(v...
2017-07-28 19:54:15 2763 1
原创 自编STM32轻量级操作系统(五)------互斥量
你好,这里是风筝的博客,欢迎和我一起交流。上一章讲了信号量:自编STM32轻量级操作系统(四)------信号量的实现 但是信号量会出现一个问题:优先级反转!什么是优先级反转呢?优先级反转是指一个低优先级的任务持有一个被高优先级任务所需要的共享资源。高优先任务由于因资源缺乏而处于受阻状态,一直等到低优先级任务释放资源为止。而低优先级获得的CPU时间少,如
2017-07-25 22:21:51 5207 2
原创 自编STM32轻量级操作系统(四)------信号量的实现
你好,这里是风筝的博客,欢迎和我一起交流。之前我们已经完成了基础的框架,现在我们来一步步完善它:添加信号量!但是,什么是信号量呢?别急,百度百科上有说:信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完
2017-07-25 19:17:06 6954 2
原创 自编STM32轻量级操作系统(三)------内存管理
你好,这里是风筝的博客,欢迎和我一起交流。上一章 自编STM32轻量级操作系统(二)------任务调度 讲了内存调度算法,接下来说下内存管理。其实我也没有什么好的内存管理算法,也是一种很大众、普通的算法,该有的内存碎片还是会有,而且STM32是支持标准库的,即支持malloc和free函数。好了,来看看我们的内存管理算法是怎么实现的吧:
2017-07-25 15:58:04 7165 2
原创 自编STM32轻量级操作系统(二)------任务调度
你好,这里是风筝的博客,欢迎和我一起交流。上一章自编STM32轻量级操作系统(一)------操作系统实现 讲了那么多,终于到了实战环节。现在来开始动手码程序。根据之前分析的,我们先写下分析流程:上帝(操作系统)正在开心的玩耍着,看了看时间,一天结束了,夜晚来了(系统定时器中断),哦,要搞事情了,人间将要掀起一场腥风血雨!!!此时人间(用户进程)
2017-07-24 22:06:03 13035 6
原创 自编STM32轻量级操作系统(一)------操作系统实现
你好,这里是风筝的博客,欢迎和我一起交流。16年寒假那段时间开始接触UCOS实时操作系统,感觉真的很神奇,还借了任哲和邵贝贝的书的来看,原来代码还可以写得那么美妙。后来,在知乎上看到一位答主的文章(https://www.zhihu.com/question/25628124/answer/133388181),顿时对操作 系统兴趣大增,想着自己也简单写一个轻量级的嵌入式操作系
2017-07-24 17:19:50 28427 5
原创 嵌入式Linux驱动笔记(六)------浅析input输入子系统框架
你好!这里是风筝的博客,欢迎和我一起交流。(文章写得比较早,当时自己也是一知半解,描述的不好,后来我参考了网上的大量资料,重新写了一篇:嵌入式Linux驱动笔记(二十五)------Input子系统框架)基于设备驱动分层的思想,其实理解了platform总线,输入子系统也是可以很好理解的。以kernel 4.8.17为例:input.c文件:staticchar*i...
2017-07-23 13:29:17 1447
原创 嵌入式Linux驱动笔记(五)------学习platform设备驱动
你好!这里是风筝的博客,欢迎和我一起交流。 设备是设备,驱动是驱动。如果把两个糅合写一起,当设备发生变化时,势必要改写整个文件,这是非常愚蠢的做法。如果把他们分开来,当设备发生变化时,只要改写设备文件即可,驱动文件巍然不动。从linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver 。Linux 中大部分的设备驱...
2017-07-18 19:43:43 3273
原创 嵌入式Linux驱动笔记(四)------USB键盘驱动程序
你好!这里是风筝的博客,欢迎和我一起交流。如果本篇博客对您有帮助,或许可以在下方评论给我留个言。Kernel版本为4.4.17.编写USB键盘的驱动,可以参考Kernel里的usbkbd.c这个文件.我越发觉得驱动都是按套路来的.......流程都差不多一样.在这个文件里,最主要就是看usb_kbd_probe函数和usb_kbd_irq函数了。
2017-07-14 15:38:42 2556
原创 嵌入式Linux驱动笔记(三)------LCD驱动程序
你好!这里是风筝的博客,欢迎和我一起交流。如果本篇博客对您有帮助,或许可以在下方评论给我留个言。开发板为JZ2440,Linux Kernel 4.4.18在Kernel自带的s3c2410fb.c文件中,就是LCD的驱动。我们可以照着这个文件编写一个LCD驱动。在文件中s3c24xxfb_probe函数就是LCD的初始化
2017-07-12 15:15:13 4624 10
原创 嵌入式Linux驱动笔记二)------定时器
你好!这里是风筝的博客,欢迎和我一起交流。如果本篇博客对您有帮助,或许可以在下方评论给我留个言。内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 和 kernel/timer.c 文件中。定时器的回调函数运行过一次后就不会再被运行了(相当于自动注销),但可以通过在回调函数中重新改变自己来周期运行。time
2017-07-12 14:48:28 1469
原创 嵌入式Linux驱动笔记(一)------第一个LED驱动程序
你好!这里是风筝的博客,欢迎和我一起交流。如果本篇博客对您有帮助,或许可以在下方评论给我留个言。//应用程序:#include #include #include #include /* leddrvtest on * leddrvtest off */int main(int argc, char **argv){ int fd; int
2017-07-03 13:00:02 4568 3
交叉编译QT5.6
2019-04-11
车牌识别代码(arm-Linux,opencv)
2019-01-21
videodev.h
2017-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人