l435799304
码龄14年
关注
提问 私信
  • 博客:17,781
    社区:993
    问答:16
    18,790
    总访问量
  • 36
    原创
  • 1,200,110
    排名
  • 11
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2011-03-13
博客简介:

l435799304的专栏

查看详细资料
个人成就
  • 获得9次点赞
  • 内容获得1次评论
  • 获得64次收藏
创作历程
  • 2篇
    2022年
  • 1篇
    2021年
  • 33篇
    2020年
成就勋章
TA的专栏
  • 线程池
    1篇
  • MFC
    1篇
  • git
    1篇
  • 学习
    33篇
兴趣领域 设置
  • 人工智能
    opencv
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

调试MFC的时候,明明数据是对的,但是访问不了

发布问题 2023.03.14 ·
1 回答

线程池 C 语言 RTOS 版本

线程池 C 语言 RTOS 版本
原创
发布博客 2022.08.03 ·
649 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Visual Studio 2013 串口类

最近调试串口获取机芯日志,要做个上位机工具能随时查看机芯的本地日志。起初想参考合泰源码做一份,但是考虑到通用性。如果未来要做其他项目,又得改串口类的代码,很麻烦。所以想整一份自己的专属串口类,方便后续移植使用。网上参考了很多资料,基本上都是大同小异。打算自己重构一份,使用双线程,实现读写分离,环形数组收发数据。应用层可以向指定的环形数组,随时随地写入不定长度的数据。或者随时随地从指定的环形数组,读取不定长度的数据。参考资料如下:Ente
原创
发布博客 2022.07.26 ·
1137 阅读 ·
0 点赞 ·
0 评论 ·
11 收藏

线程池 C 语言 RTOS 版本

发布资源 2022.07.26 ·
zip

Visual Studio 2013 串口类

发布资源 2022.06.19 ·
zip

Gitee 输入密码错误

Gitee输入密码错误第一次使用 Gitee,再输入密码的时候不小心输入错误,后面又没有再次提示输入密码。导致每次clone都是错误,一脸懵逼。打开控制面板,找到gitee。修改账号密码并保存再次使用clone即可正常克隆项目...
原创
发布博客 2021.06.22 ·
1293 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

学习RTOS(9)支持时间片

FreeRTOS 与隔壁的 RT-Thread 和 μC/OS 一样,都支持时间片的功能。 所谓时间片就是同一个优先级下可以有多个任务,每个任务轮流地享有相同的 CPU 时间, 享有 CPU 的时间我们叫时间片。在 RTOS 中,最小的时间单位为一个 tick,即 SysTick 的中断周期,RT-Thread 和 μC/OS 可以指定时间片的大小为多个 tick,但是 FreeRTOS 不一样,时间片只能是一个 tick。 与其说 FreeRTOS 支持时间片,倒不如说它的时间片就是正常的任务调度。假设
原创
发布博客 2020.08.26 ·
671 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

学习RTOS(8)任务延时列表

在本章之前, 为了实现任务的阻塞延时,在任务控制块中内置了一个延时变量xTicksToDelay。每当任务需要延时的时候,就初始化 xTicksToDelay 需要延时的时间, 然后将任务挂起,这里的挂起只是将任务在优先级位图表 uxTopReadyPriority 中对应的位清零,并不会将任务从就绪列表中删除。 当每次时基中断( SysTick 中断) 来临时, 就扫描就绪列表中的每个任务的 xTicksToDelay, 如果 xTicksToDelay 大于 0 则递减一次,然后判断xTicksToDe
原创
发布博客 2020.08.26 ·
684 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

学习RTOS(7)支持多优先级

如何支持多优先级就绪列表 pxReadyTasksLists[ configMAX_PRIORITIES ]是一个数组, 数组里面存的是就绪任务的 TCB(准确来说是 TCB 里面的 xStateListItem 节点) ,数组的下标对应任务的优先级,优先级越低对应的数组下标越小。空闲任务的优先级最低,对应的是下标为 0 的链表。 图 10-1 演示的是就绪列表中有两个任务就绪, 优先级分别为 1 和 2,其中空闲任务没有画出来,空闲任务自系统启动后会一直就绪,因为系统至少得保证有一个任务可以运行。
原创
发布博客 2020.08.26 ·
415 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

学习RTOS(6)空闲任务与阻塞延时

RTOS 中的延时叫阻塞延时,即任务需要延时的时候,任务会放弃 CPU 的使用权, CPU 可以去干其它的事情,当任务延时时间到,重新获取 CPU 使用权,任务继续运行,这样就充分地利用了 CPU 的资源,而不是干等着。当任务需要延时,进入阻塞状态,那 CPU 又去干什么事情了?如果没有其它任务可以运行, RTOS 都会为 CPU 创建一个空闲任务,这个时候 CPU 就运行空闲任务。 在FreeRTOS 中,空闲任务是系统在【启动调度器】的时候创建的优先级最低的任务,空闲任务主体主要是做一些系统内存的清理工
原创
发布博客 2020.08.22 ·
884 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

学习RTOS(5)临界段

什么是临界段临界段用一句话概括就是一段在执行的时候不能被中断的代码段。那么什么情况下临界段会被打断?一个是系统调度,还有一个就是外部中断。在FreeRTOS,系统调度,最终也是产生 PendSV 中断,在 PendSV Handler 里面实现任务的切换,所以还是可以归结为中断。 既然这样, FreeRTOS 对临界段的保护最终还是回到对中断的开和关的控制。不带返回值的关中断函数代码清单 8-2(1): 不带返回值的关中断函数,不能嵌套,不能在中断里面使用。不带返回值的意思是:在往 BASEPR
原创
发布博客 2020.08.22 ·
373 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

学习RTOS(4)任务

什么是任务在裸机系统中,系统的主体就是 main 函数里面顺序执行的无限循环,这个无限循环里面 CPU 按照顺序完成各种事情。在多任务系统中,我们根据功能的不同,把整个系统分割成一个个独立的且无法返回的函数,这个函数我们称为任务。 任务的大概形式具体见代码清单 7-2。创建任务创建任务我们先回想下,在一个裸机系统中,如果有全局变量,有子函数调用,有中断发生。那么系统在运行的时候,全局变量放在哪里,子函数调用时,局部变量放在哪里,中断发生时,函数返回地址放哪里。如果只是单纯的裸机编程,它们放哪
原创
发布博客 2020.08.22 ·
469 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

学习RTOS(3)数据结构

在 FreeRTOS 中存在着大量的基础数据结构列表和列表项的操作,列表和列表项是直接从 FreeRTOS 源码注释中的 list 和 list item 翻译过来的,其实就是对应我们 C 语言当中的链表和节点,在后续的讲解,我们说的链表就是列表,节点就是列表项。C 语言链表链表作为 C 语言中一种基础的数据结构,在平时写程序的时候用的并不多,但在操作系统里面使用的非常多。链表由节点组成,节点与节点之间首尾相连。链表的节点本身不能存储太多东西,或者说链表的节点本来就不是用来存储大量数据的,链表分为单向
原创
发布博客 2020.08.22 ·
355 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

学习RTOS(2)裸机与系统

操作系统与裸机的区别裸机运行的程序代码,一般由一个main函数中的while死循环和各种中断服务程序组成,平时CPU执行while循环中的代码,出现其他事件时,跳转到中断服务程序进行处理,没有多任务、线程的概念。而引入操作系统后,程序执行时可以把一个应用程序分割为多个任务,每个任务完成一部分工作,并且每个任务都可以写成死循环。操作系统根据任务的优先级,通过调度器是CPU分时执行各个任务,保证每个任务都能够得到运行。若调度方法优良,则可使多个任务看起来是并行执行的,减少了CPU的空闲时间,提高了CPU的
原创
发布博客 2020.08.22 ·
544 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

学习RTOS(1)软件仿真

新建本地工程文件夹新建工程开发板的芯片是 STM32F429IGT,内核是cortex4配置 Manage Run-Time Environment 选项在 KEIL 工程里面新建文件组编写 main 函数一个工程如果没有 main 函数是编译不成功的,会出错。因为系统在开始执行的时候先执行启动文件里面的复位程序,复位程序里面会调用 C 库函数__main, __main 的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。 __main 最后会调用__rtentry,再由
原创
发布博客 2020.08.22 ·
592 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

学习RTOS(0)前言

FreeRTOS 由美国的 Richard Barry 于 2003 年发布, Richard Barry 是 FreeRTOS 的拥有者和维护者, 在过去的十多年中 FreeRTOS 历经了 9 个版本, 与众多半导体厂商合作密切,累计开发者数百万,是目前市场占有率最高的 RTOS。FreeRTOS 于 2018 年被亚马逊收购, 改名为 AWS FreeRTOS,版本号升级为 V10,且开源协议也由原来的 GPLv2+修改为 MIT,与 GPLv2+相比, MIT 更加开放,你完全可以理解为是为所欲为
原创
发布博客 2020.08.22 ·
212 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

学习Linux(40)共享内存

共享内存基本概念什么是共享内存?顾名思义,共享内存就是将内存进行共享,它允许多个不相关的进程访问同一个逻辑内存,直接将一块裸露的内存放在需要数据传输的进程面前,让它们自己使用。因此,共享内存是效率最高的一种IPC通信机制,它可以在多个进程之间共享和传递数据,进程间需要共享的数据被放在共享内存区域,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间中去,因此所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。但是,这种共享的内存需要进程自己去维护好,如
原创
发布博客 2020.08.22 ·
257 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

学习Linux(39)信号量

进程信号量基本概念信号量与已经介绍过的 管道、FIFO以及消息列队不同,它本质上是一个计数器,用于多进程间对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得该临界资源在一个时刻只有一个进程独享。可能会有同学问了,为什么不使用全局变量呢?那是因为全局变量并不能在进程间共同使用,因为进程间是相互独立的,而且也无法保证引用计数的原子操作,因此使用系统提供的信号量即可1.互斥2.同步3.保护共享资源由于信号量只能进行两种操作等待和发送信
原创
发布博客 2020.08.22 ·
219 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

学习Linux(38)消息队列

消息队列、共享内存 和 信号量 被统称为 system-V IPC,V 是罗马数字 5,是 Unix 的AT&T 分支的其中一个版本,一般习惯称呼他们为 IPC 对象,这些对象的操作接口都比较类似,在系统中他们都使用一种叫做 key 的键值来唯一标识,而且他们都是“持续性”资源——即他们被创建之后,不会因为进程的退出而消失,而会持续地存在,除非调用特殊的函数或者命令删除他们。消息队列与信号的对比:信号承载的信息量少,而消息队列可以承载大量的数据消息队列与管道的对比:消息队列跟命名管道有不
原创
发布博客 2020.08.22 ·
150 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

学习Linux(37)信号

概述信号(signal),又称为软中断信号,用于通知进程发生了异步事件,它是Linux系统响应某些条件而产生的一个事件,它是在软件层次上对中断机制的一种模拟,是一种异步通信方式,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。正如我们所了解的中断服务函数一样,在中断发生的时候,就会进入中断服务函数中去处理,同样的,当进程接收到一个信号的时候,也会相应地采取一
原创
发布博客 2020.07.25 ·
340 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多