自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木子皿--啥都不会的菜鸟

努力学习,希望有朝一日能够从事后台服务器开发相关工作!

原创 Hooks扩展

文章目录1 Hooks扩展 1 Hooks扩展 参考资料: 【李述铜】从0到1自己动手写嵌入式操作系统

2020-03-31 17:27:54 66 0

原创 内核裁剪

文章目录1 内核裁剪 1 内核裁剪 参考资料: 【李述铜】从0到1自己动手写嵌入式操作系统

2020-03-31 17:26:13 65 0

原创 CPU使用百分比测量

文章目录1 CPU使用百分比测量1.1 需求概述1.2 设计原理1.3 设计实现 1 CPU使用百分比测量 1.1 需求概述 1.2 设计原理 1.3 设计实现 特殊代码块: 统计使用百分比: 相关代码如下: // 空闲任务计数与最大计数 uint32_t idleCount; uint3...

2020-03-31 17:02:29 87 0

原创 堆栈使用测量

文章目录1 堆栈使用测量1.1 问题概述1.2 设计原理1.3 设计实现 1 堆栈使用测量 1.1 问题概述 我们知道在当前的设计中每个任务都配备一个有限的任务栈,用于保存各种关键性的数据。但是这个栈空间是有限的,实际有可能超出此空间。 可能出现如下错误: 1.2 设计原理 设计原理如下: ...

2020-03-31 15:58:49 93 0

原创 软定时器的删除与状态查询

文章目录1 软定时器的删除与状态查询 1 软定时器的删除与状态查询 定时器的删除: 定时器状态查询: 参考资料: 【李述铜】从0到1自己动手写嵌入式操作系统 ...

2020-03-31 14:40:01 59 0

原创 软定时器的启动与停止

文章目录1 软定时器的启动与停止 1 软定时器的启动与停止 软定时器单独开一个定时器任务来处理,硬定时器直接放在Systick中断中进行处理。 定时器启动: 定时器停止: 具体的实现代码如下: /*************************************** Copyright...

2020-03-31 14:26:51 175 0

原创 list

文章目录1 list的基本概念2 list的常用用法2.1 list对象的默认构造2.2 list对象的带参数构造2.3 list头尾的添加移除操作2.4 list的数据存取2.5 list与迭代器2. 6 list的赋值2.7 list的大小2.8 list的插入2.9 list的删除2.10 ...

2020-03-31 14:02:40 47 0

原创 软定时器的原理与创建

文章目录1 软定时器的原理与创建1.1 问题概述1.2 设计原理1.3 设计实现 1 软定时器的原理与创建 1.1 问题概述 在实际应用中,常常需要周期性或者在指定时间做一件事情: 周期性:在指定的延时开始做某件事情,然后周期性重复执行。 一次性:在指定的延时开始后做某件事情,执行一次后立即结束...

2020-03-30 16:17:48 141 0

原创 互斥信号量的删除与状态查询

文章目录1 互斥信号量的删除与状态查询 1 互斥信号量的删除与状态查询 互斥信号量的删除: 状态查询: /**********************************************************************************************...

2020-03-30 15:44:21 98 0

原创 deque

文章目录1 deque简介2 deque的常用用法2.1 deque对象的默认构造2.2 deque对象的带参数构造2.3 deque头部和末尾的添加移除操作2.4 deque的数据存取2.5 deque与迭代器2.6 deque的赋值2.7 deque的大小2.8 deque的插入2.9 de...

2020-03-30 15:04:37 111 0

原创 Qt中的模型视图设计模式

文章目录1 初探Qt中的模型视图设计模式2 模型视图中的索引 1 初探Qt中的模型视图设计模式 模型视图设计模式的核心思想: 模型(数据)与视图(显示)相分离。 模型对外提供标准接口存取数据(不关心数据如何显示)。 视图自定义数据的显示方式(不关心数据如何组织存储)。 模型视图模式的直观理解:...

2020-03-30 14:05:42 131 0

原创 STL中的迭代器

文章目录1 STL中的迭代器 1 STL中的迭代器 使用的过程中总结的几个要点如下: iterator继承自const_iterator。 不能通过const_iterator修改其指向的内容,但是可以对迭代器本身进行操作。 ...

2020-03-30 11:56:33 55 0

原创 互斥信号量的等待与通知

文章目录1 互斥信号量的等待与通知1 设计原理1.2 设计实现 1 互斥信号量的等待与通知 1 设计原理 等待互斥信号量: 信号量未被占有: 标记为已占有。 锁定次数+1。 信号量被自己占有: 锁定次数加1。 信号量被高优先级任务占有: 当前任务进入等待列表。 信号量被低优先级...

2020-03-28 16:51:38 124 0

原创 互斥信号量的原理与创建

文章目录1 互斥信号量的原理与创建1.1 问题概述1.2 设计原理1.3 设计实现 1 互斥信号量的原理与创建 1.1 问题概述 问题:如何处理多个任务共享资源冲突的问题? 使用计数信号量存在的不足: 优先级反转现象: 1.2 设计原理 锁定计数器: 优先级继承: 1.3 设计实现 定...

2020-03-28 15:32:37 225 0

原创 List

文章目录1 线性表的基本概念1.1 线性表的表现形式1.2 线性表(List)的抽象定义1.3 线性表(List的性质)1.4 线性表的一些常用操作2 继承关系图和接口实现3 代码实现 1 线性表的基本概念 1.1 线性表的表现形式 零个或多个数据元素组成的集合 数据元素在位置上是有序...

2020-03-28 15:09:04 78 0

原创 Qt中的QTabWidget

文章目录1 Qt中的QTabWidget 1 Qt中的QTabWidget Qt中的多页面切换组件QTabWidget: 能够在同一个窗口中自由切换不同页面的内容。 是一个容器类型的组件,同时提供友好的页面切换方式。 QTabWidget的使用方式: 在应用程序中创建QTabWidget的...

2020-03-28 10:50:33 163 0

原创 Qt中应用程序的打包与发布

文章目录1 Qt中应用程序的打包与发布1.1 调试与发布1.2 程序的库依赖1.3 部署程序的开发 1 Qt中应用程序的打包与发布 1.1 调试与发布 发布应用程序时的候选者: 调试版(debug):开发阶段生成的可执行程序。 发布版(release):最终产品的可执行程序。 调试版的可执行程...

2020-03-28 10:01:37 72 0

原创 事件标志组的删除与状态查询

文章目录1 事件标志组的删除与状态查询1.1 设计实现 1 事件标志组的删除与状态查询 1.1 设计实现 事件标志组的删除: 状态查询: 参考资料: 【李述铜】从0到1自己动手写嵌入式操作系统 ...

2020-03-27 16:58:52 74 0

原创 事件标志组的等待与通知

文章目录1 事件标志组的等待与通知1.1 设计需求1.2 设计实现 1 事件标志组的等待与通知 1.1 设计需求 当事件标志位发生时: 没有任务等待,设置相应的事件标志。 有任务等待时,唤醒等待任务。 1.2 设计实现 等待事件标志: 无查询等待事件标志: 通知事件发生: tFl...

2020-03-27 16:37:05 103 0

原创 事件标志组的原理与创建

文章目录1 事件标志组的原理与创建1.1 问题概述1.2 设计原理1.3 设计实现 1 事件标志组的原理与创建 1.1 问题概述 如何在中断ISR与任务之间传递多个事件标志? 可以通过事件标志组: 事件标志组可以提供类似前后台系统中设置标志位然后由任务处理该标志对应的事件功能。 但与前后台系统...

2020-03-27 14:00:47 296 0

原创 存储块的删除与状态查询

文章目录1 存储块的删除与状态查询1.1 设计实现 1 存储块的删除与状态查询 1.1 设计实现 存储块的删除: 存储块的状态查询: 参考资料: 【李述铜】从0到1自己动手写嵌入式操作系统 ...

2020-03-27 13:42:02 65 0

原创 文本编辑器中命令行参数的应用

文章目录1 文本编辑器中命令行参数的应用 1 文本编辑器中命令行参数的应用 我们要知道对于每一个应用程序我们都能够接收命令行参数,那么对于GUI系统中命令行参数如何传递到应用程序呢? 主要有如下两种方式: 传统应用方式:在命令行启动GUI程序时传递参数。 操作系统关联方式:在文件被双击时,操作系...

2020-03-27 09:40:31 117 0

原创 存储块的存储与释放

文章目录1 存储块的存储与释放1.1 设计原理1.2 设计实现 1 存储块的存储与释放 1.1 设计原理 获取存储块: 有空闲存储块,直接取出空闲块。 无空闲存储块,任务进入等待列表。 释放存储块: 无任务等待,插入到空闲链表。 有任务等待,释放等待队列头部的任务。 1.2 设计实现 获取...

2020-03-26 17:27:50 81 0

原创 存储块的原理与创建

文章目录1 存储块的原理与创建1.1 问题概述1.2 设计原理1.3 设计实现 1 存储块的原理与创建 1.1 问题概述 malloc和free: 存在的问题: 频繁地进行任意大小的内存分配可能会产生很多不连续的细小的外部碎片,导致无法再次分配。 代码实现比较复杂,分配和释放过程操作时间不确...

2020-03-26 16:35:43 127 0

原创 Object

1 当代软件架构实践中经验 尽量使用单继承的方式进行系统设计 尽量保持系统中在存在单一的继承树 尽量使用组合关系代替继承关系 2 创建Object类的意义 遵循经典设计准则,所有的数据结构都继承自Object类 定义动态内存申请的行为,提高代码的可移植行 注意: 对于...

2020-03-26 10:59:17 79 0

原创 文本编辑器中的配置文件

文章目录1 文本编辑器中的配置文件 1 文本编辑器中的配置文件 程序中的配置文件: 应用程序在运行后都有一个初始化的状态。 一般而言,程序的初始化状态是最近一次运行退出前的状态。 问题:如何保存和恢复程序状态呢? 解决思路: 程序退出前保存状态参数到文件(数据库)。 程序再次启动时读出状态参...

2020-03-26 10:29:30 84 0

原创 PID控制算法

文章目录1 位式控制算法1.1 位式控制算法框图1.2 位式控制算法的特点 1 位式控制算法 1.1 位式控制算法框图 首先,用户可以通过按键、滑动电阻或者其他方式输入一个控制信号Sv给控制算法, 然后控制算法会结合输入信号Sv和输出采集回来的信号Pv来计算输出量out,然后由out信号...

2020-03-26 08:51:54 276 0

原创 邮箱的状态查询

文章目录1 邮箱的状态查询1.1 设计实现 1 邮箱的状态查询 1.1 设计实现 邮箱的状态查询结构: 邮箱的状态查询: 参考资料: 【李述铜】从0到1自己动手写嵌入式操作系统 ...

2020-03-26 08:46:32 95 0

原创 邮箱的清空与删除

文章目录1 邮箱的清空与删除1.1 设计实现 1 邮箱的清空与删除 1.1 设计实现 邮箱的清空: 邮箱的删除: 参考资料: 【李述铜】从0到1自己动手写嵌入式操作系统 ...

2020-03-26 08:44:09 119 0

原创 C++版数据结构继承关系图

文章目录1 C++版数据结构继承关系图 1 C++版数据结构继承关系图 http://www.plantuml.com/plantuml/png/RP0nJaCn38Ptd-AfUs_0K4JPAW622uJK4g592gaZKOaH1WQcYWc9bGs1kl4aECrBhe58J7c6BhR...

2020-03-25 16:28:49 281 0

原创 Exception

1 异常类构建 异常的类型也可以是自定义类型 对于类类型异常的匹配依旧是至上而下严格匹配的 赋值兼容性原则在异常匹配中依然适用 一般而言: - 匹配子类异常的catch放在上部 - 匹配父类异常的catch放在下部 设计原则: 在可复用代码库设计时,尽量使用面向对象技术进行架构,尽量使用异常...

2020-03-25 16:24:59 118 0

原创 文本编辑器实现打开帮助文件的功能

文章目录1 文本编辑器实现打开帮助文件的功能 1 文本编辑器实现打开帮助文件的功能 打开外部文件: QDesktopServices提供了一系列桌面开发相关的服务接口。 通过QDesktopServices中的成员函数打开帮助文件: QDesktopServices::openUrl(QUrl...

2020-03-25 15:09:46 86 0

原创 文本编辑器中实现自动换行的功能

文章目录1 文本编辑器中实现自动换行的功能 1 文本编辑器中实现自动换行的功能 实现思路: 获取当前文本编辑框的换行模式。 将模式进行反转后并进行设置。 更新对应QAction对象的状态。 槽函数的绑定: 槽函数的实现: void MainWindow::onFormatWrap() { ...

2020-03-25 15:02:55 679 0

原创 文本编辑器中实现自定义编辑框中字体和大小的功能

文章目录1 文本编辑器中实现自定义编辑框中字体和大小的功能 1 文本编辑器中实现自定义编辑框中字体和大小的功能 实现思路: 通过QFontDialog选择字体及大小。 将QFont对象设置到文本编辑框。 槽函数的绑定: 槽函数的实现: void MainWindow::onFormatFon...

2020-03-25 14:59:48 128 0

原创 文本编辑器实现关于对话框的功能

文章目录1 文本编辑器实现关于对话框的功能 1 文本编辑器实现关于对话框的功能 关于对话框: 标准的桌面应用软件都有一个关于对话框。 关于对话框用于标识软件自身的信息: 软件Logo、项目名、版本号。 开发者信息。 版权信息。 联系方式。 经典设计方案: AboutDialog: #i...

2020-03-25 14:55:47 94 0

原创 邮箱的获取与释放

文章目录1 邮箱获取与释放1.1 设计实现 1 邮箱获取与释放 1.1 设计实现 获取消息: 释放消息: 代码如下: /***************************************************************************************...

2020-03-24 17:48:45 74 0

原创 邮箱的原理与创建

文章目录1 邮箱的原理与创建1.1 问题概述1.2 设计原理1.3 设计实现 1 邮箱的原理与创建 1.1 问题概述 如何在多个任务间传递消息进行通信呢? 1.2 设计原理 设计要点如下: 邮箱无消息,任务等待。 邮箱没有任务收消息,消息缓存。 考虑效率问题,保存消息起始地址。 1.3 设...

2020-03-24 16:30:14 173 0

原创 计数信号量的删除与状态查询

文章目录1 计数信号量的删除与状态查询 1 计数信号量的删除与状态查询 信号量的删除: 信号量的状态查询: 参考资料: 【李述铜】从0到1自己动手写嵌入式操作系统 ...

2020-03-24 15:37:47 61 0

原创 文本编辑器中实现设置工具栏和状态栏可见性的功能

文章目录1 文本编辑器中实现设置工具栏和状态栏可见性的功能 1 文本编辑器中实现设置工具栏和状态栏可见性的功能 实现思路如下: 通过setVisible()设置可见性。 更新界面上QAction对象的状态: 菜单中的QAction对象是否勾选。 工具栏中的QAction对象是否按下。 槽...

2020-03-24 15:05:41 345 0

原创 文本编辑器实现跳转到指定行的功能

文章目录1 文本编辑器实现跳转到指定行的功能 1 文本编辑器实现跳转到指定行的功能 用户需求: 提供输入对话框。 用户可输入目标行号。 确定后光标跳转到指定行。 行间跳转算法设计: 通过输入对话框获取目标行号。 查找换行符的位置计算目标行第一个字符的下标。 通过QTextCursor定位到目...

2020-03-24 14:41:20 193 0

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