- 博客(15)
- 收藏
- 关注
原创 多线程——thread库
C++11线程库的基本使用,包括创建线程、启动线程、等待线程完成、分离线程,因此即使线程参数为引用类型,在线程中修改后也不能修改外部实参,因为其实际引用的是线程栈中的拷贝,而不是外部实参。如果想通过,可采用1);2)
2024-04-01 18:22:53
151
原创 【嵌入式】FreeRTOS
FreeRTOS(Free Real-Time Operation System)是一个开源的轻量级实时操作系统内核,专门为嵌入式系统设计。它提供了一套简单而强大的API,用于管理任务、调度任务、同步和通信等操作。
2024-03-24 23:13:54
259
原创 【嵌入式】基本概念
GPIO(General Purpose Input Output,通用输入输出端口),单片机上一些引脚,可用于控制LED灯、蜂鸣器;也可以用作按键输入、ADC采样等,从而实现STM32单片机和外部硬件之间的连接与数据交互。芯片每组GPIO 都有一组寄存器与之关联,通过编程读写相关寄存器,即可实现对GPIO引脚的控制。GPIO常见寄存器有4种:1)配置寄存器;2)数据寄存器;3)复位/置位寄存器;4)复用寄存器。
2024-03-24 23:13:03
125
原创 【嵌入式】通信总线协议
该总线有两条数据线,可以实现的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。一般情况下处理器中都会集成UART控制器,使用UART进行通信时只需对其内部的相关寄存器进行设置即可。设置引脚功能的实质是让引脚在芯片内部连接到某一个对应的控制器上。
2024-03-24 00:29:37
1533
原创 数据结构与算法2
其中每个元素代表一个垂直隔板的高度。容器的容量等于高度和宽度的乘积(面积),其中高度由较短的隔板决定,宽度是两个隔板的数组索引之差。请在数组中选择两个隔板,使得组成的容器的容量最大,返回最大容量。,网格中的每个单元格包含一个非负整数,表示该单元格的代价。通过穷举来解决问题,核心思想是从一个初始状态出发,暴力搜索所有可能的解决方案,当遇到正确的解则将其记录,直到找到解或者尝试了所有可能的选择都无法找到解为止。将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率。
2024-03-15 21:28:49
626
原创 TCP/IP协议族
ARP(地址解析协议)RARP(逆地址解析协议)IP协议(网际协议)ICMP(互联网控制报文协议)IGMP(互联网组管理协议)TCP(传输控制协议)UDP(用户数据报协议)Telnet(远程登录)FTP(文件传输协议)SNMP(简单网络管理协议)SMTP(简单邮件传送协议)Ping。
2024-03-06 17:45:48
1452
原创 多路I/O转接服务器
epoll是Linux下多路复用IO接口select/poll的增强版本,1)在大量并发连接中只有少量活跃的情况下,epoll能显著提高程序的CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合;2)获取事件的时候,它无须遍历整个被侦听的描述符集,只需遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合。目前epoll是linux大规模并发网络程序中的热门首选模型。
2024-02-28 20:34:37
266
原创 Qt编程学习
两者的配置方式存在差异,并且使用上兼容性不好。信号(signal):各种事件槽(slot): 响应信号的动作 当某个事件发生后,如某个按钮被点击了一下,它会发出一个被点击的信号。 某个对象接收到这个信号后,就会做一些相关的处理动作。 想让一个对象收到另一个对象发出的信号,需要建立连接。
2024-02-28 19:51:50
478
原创 设计模式(Design Pattern)
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。——《建筑的永恒之道》“设计模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。
2024-02-27 16:59:25
541
原创 STL(Standard Template Library)标准模板库
表1 STL六大组件序号组件定义说明1容器各种存放数据的数据结构2算法各种常用算法3迭代器扮演了容器与算法之间的胶合剂,是一种”泛型指针“4仿函数行为类似函数的类,可作为算法的某种策略重载“()”5适配器用于修饰容器、仿函数和迭代器接口6空间配置器负责空间的配置与管理STL六大组件的交互关系,容器通过空间配置器取得数据存储空间,算法通过迭代器存储容器中的内容,仿函数可以协助算法实现不同的策略,适配器可以修饰仿函数。
2024-02-22 12:24:39
253
原创 数据结构与算法1
b)若栈顶符号优先级不低,将栈顶符号弹出,然后此运算符进栈。2)运算符:a)若栈顶符号优先级低,此运算符进栈;3)右括号:将栈顶符号弹出,直到匹配左括号。遍历结束后,将栈中所有符号弹出。(备注:左括号的优先级最低)字符串: 5+5*(6)+9/3*1)-(1+3(例如:8 3 1 – 5 * +对于符号:1)左括号:进栈;对于数字,直接输出;
2024-02-21 12:05:05
563
原创 GCC/G++ 代码编译
AutoTools是GNU程序的标准构建系统,帮助程序员构建软件。AutoTools工具是个系列工具,主要有:autoscan、aclocal、autoconf、autoheader、automake。采用AutoTools工具,输入工程中的目标文件、依赖文件、文件目录等信息自动生成Makefile。2)需要手动编写Makefile.am 文件。【test.c】 --预编译-- 【test.i】--编译--【test.s】--汇编--【test.o】--链接--【test】不需要使用该符号,直接换行即可。
2024-02-03 15:30:38
371
原创 GDB常用命令
GDB自定义命令介绍GDB中有一个非常强大的功能,允许用户根据具体场景需求自定义命令。end自定义命令以define开始,后面跟命令名字,并且以end结束。define和end中间是具体的实现逻辑。序号条目描述1$argc自定义命令的参数个数2$arg0自定义命令的第一个参数3$arg1自定义命令的第二个参数4$arg2自定义命令的第三个参数5$argN自定义命令的第N+1个参数应用1:两数相加define addend应用2:链表打印。
2024-02-02 22:57:17
2303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人