- 博客(14)
- 资源 (22)
- 收藏
- 关注
原创 【LINUX驱动学习】按键中断
(一)关于LINUX中的中断中断是一个处理器的稀缺资源,在系统中非常重要,通过中断能够及时高效的响应外部事件,提高系统的响应能力,增加系统吞吐量。在驱动中使用中断,其实比较简单,先申请中断号,并注册一个中断中断处理程序,在中断程序实现对外部事件的处理。(二)在内核态实现按键对于LED灯的控制代码实现#include <linux/init.h>#include <li...
2019-09-27 20:27:37 341
原创 【LINUX驱动学习】字符类设备驱动
(一)字符类驱动和杂项驱动的区别回顾一下字符驱动编程的基本过程:(1) 首先需要通过 alloc_chrdev_region()获得设备编号;(2) 然后需要通过 cdev_alloc()申请一个 cdev 结构;(3) 接着需要通过 cdev_init()对申请到的 cdev 进行初始化;(4) 最后才能将申请到的 cdev 通过 cdev_add()往系统添加。这样编写驱动稍微显得...
2019-09-27 20:19:15 358
原创 【LINUX驱动学习】杂项字符类设备的注册与使用
对于驱动的学习光看是没有用的,还是得要自己敲一敲代码。杂项设备算是最简单的LINUX驱动那么就从他开始吧。在LINUX中写驱动不同于在单片机中,单片机10-20行可以干好的事情LINUX的驱动可能要写到100-200行,虽然有些麻烦但是也有他的好处。功能的固化可以使你的代码更有价值。其实只要了解大致的框架,真正有用的部分还是单片机里的那一套。实验一:点灯实验之前其实已经点过灯了,但那是用了...
2019-09-25 17:39:46 350
原创 【LINUX驱动学习】LINUX驱动理论
其实很早之前就已经学习了杂项设备驱动的编写,但是之前一直觉得模模糊糊,还是有一些不太理解的地方。最近在看完周立功的一本书后有所启发,开始写一些关于驱动的东西。(一)驱动设备分类Linux 系统中的设备可以分为字符设备、块设备和网络设备这 3 类。字符设备:字符设备是能够像字节流一样被访问的设备,当对字符设备发出读写请求,相应的 I/O 操作立即发生。Linux 系统中很多设备都是字符设备,如...
2019-09-25 17:21:23 276
原创 【TencentOS】内存管理
三)内存管理腾讯为我们提供了内存管理API动态内存管理模块,提供了一套动态管理系统内存的机制,支持用户动态的申请、释放不定长内存块。堆内存管理tos_mmheap_pool_addk_err_t tos_mmheap_pool_add(void *pool_start, size_t pool_size);• 功能描述向堆内存中添加内存池。• 参数解释IN/OUT 参数名 描述...
2019-09-20 18:40:24 489
原创 【TencentOS】事件
3)事件概述事件提供了一种任务间实现同步和信息传递的机制。一般来说,一个事件中包含了一个旗标,这个旗标的每一位表示一个“事件”。一个任务可以等待一个或者多个“事件”的发生,其他任务在一定的业务条件下可以通过写入特定“事件”唤醒等待此“事件”的任务,实现一种类似信号的编程范式事件eventtos_event_createk_err_t tos_event_create(k_event_t...
2019-09-20 18:37:47 438
原创 【TencentOS】信号量
2)信号量信号量是一种实现任务间同步的机制,一般用于多个任务间有限资源竞争访问。通常来说,一个信号量中持有一个整形数值,用以表示可用资源的数量。当一个信号量的可用资源数量大于0时,任务尝试获取该信号量成功,信号量的可用资源数减一;当一个信号量的可用资源数等于0时,任务尝试获取该信号量失败或进入阻塞状态。信号量的这一模式,当可用资源数为1时,可将其用于资源的互斥访问;或者解决生产者-消费者问题中...
2019-09-20 18:34:05 383
原创 【TencentOS】互斥量
(二)任务间通信1) 互斥量互斥量又称互斥锁,一般用于共享资源的互斥排他性访问保护。互斥量在任意时刻处于且仅会处于解锁或锁定状态,当一个任务获取到一把锁后(互斥量锁定),其他任务再尝试获得这把锁时会失败或进入阻塞状态,当该任务释放持有的锁时(互斥量解锁),会唤醒一个正阻塞等待此互斥量的任务,被唤醒的任务将会获取这把锁。在多任务运行环境中,有些共享资源不具有多线程可重入性,对于这类不希望被多...
2019-09-20 18:28:14 356
原创 【TencentOS】任务管理
(一) 任务管理TencentOS tiny内核是单地址空间的可抢占式实时内核,TencentOS tiny内核不提供进程模型,任务对应线程的概念,是最小的调度运行体,也是最小的资源持有单位。任务的本质是一个拥有独立栈空间的可调度运行实体,用户可以在任务的入口函数中编写自己的业务逻辑;多个任务之间可以通过系统提供的任务间通信机制进行同步或者信息传递等操作;每个任务都有优先级,高优先级任务可以抢...
2019-09-19 21:25:40 1612 1
原创 【TencentOS】嵌入式RTOS的新选择
今天在浏览CSDN的推送的时候猛然发现一个消息,说是腾讯开源了新型RTOSTecentOS Tiny!!!github地址:https://github.com/Tencent/TencentOS-tiny看到这个消息自己顿时就就不淡定了,当即放下了手中所有的活,开始着手移植这个今天刚刚开源的国产RTOS。在仔细看完了一些关于TecentOS的一些介绍后,我更不淡定了,我顿时就产生了一个想...
2019-09-19 19:43:58 5496 1
原创 【数字图像处理】基于opencv的图像采集与拼接
最近准备开始着手学习计算机视觉,首先还是从opencv开始学起。在opencv平台首先实现摄像头实时采集图像,按下空格拍照,拍完四张图片后实现图像的简单拼接。1.图像的采集#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>...
2019-09-17 15:22:32 1447
原创 【嵌入式UI开发】嵌入式LINUX直接操作屏幕的方法
之前一直再学习QT操作LCD屏幕的方式,但是后来发现这种方式太过于死板,因为刚刚接触LINUX不久对于LINUX下的显卡操作并不是非常熟悉,但是我知道作为一个设备,LCD一定还有其他方式进行操控,只是非常可惜的是好像几乎没有人这么干过,而且我购买的开发板的教程也没有提到我们该如何进行直接的写屏操作。好在在源码中还是找到了显示的方法。因为在内核里,有一段进行开机LOGO显示的代码,参考这段代码,同时...
2019-09-12 21:50:45 2086
原创 【随笔】入坑半年后对嵌入式的一点认识
对嵌入式的一点认识我们自动化系是一个就业非常轻松的专业,可以让我们从事的行业非常丰富:电子/电气工程师、电气工程师/技术员、自动化工程师、电气工程师、自动控制工程师/技术员、研发工程师、电子工程师/技术员、软件工程师、电子技术研发工程师、设备工程师(调试/安装/维护)、软件工程师、高级软件工程师、嵌入式软件工程师、研发工程师、软件开发工程师、嵌入式软件开发(Linux/单片机/DLC/DSP…...
2019-09-09 22:18:53 2209 1
原创 【开发环境搭建】Windows下的QT+opencv开发环境配置
大概在很早以前就听说过opencv了一直想搞一个玩一玩。后来分别尝试了在ARM平台交叉编译,Ubuntu平台,Windows平台移植了QT+opencv环境。为什么我对QT的环境那么执着呢。一方面确实是QTE的跨平台的特性十分吸引我,而且听说不久以后又将有QT for Mcu 的推出,另外一方面QT Creator 本身就是一个非常优秀的集成开发环境。特别是在LINUX下,QT的代码提示,代码高...
2019-09-08 22:28:55 1788
RCT6_OV2640.zip
2021-08-12
FFMPEG USB摄像头RTMP推流.zip
2020-04-25
mjpegclint.zip
2020-03-11
STM32 OV7670无FIFO.zip
2019-08-26
网盘资源分享.zip
2019-07-18
stm32掌上游戏机工程.zip
2019-06-14
智能小车蓝牙控制 基于stm32f103
2019-04-06
智能小车驱动程序源码
2019-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人