2025-01-22
Comment在实际项目中,常常会遇到一个任务和另一个任务进行“沟通交流”的情况(即任务与任务之间的数据传递),通常我们会考虑通过全局变量来完成任务间的数据传递,但是全局变量数据无保护,导致数据不安全,当多个任务同时对该变量操作时,数据易受损,无法追踪全局变量被谁使用或被谁更改。 FreeRTOS对此提供一个叫做队列的机制。
Read More
2025-01-10
Comment学习arm指令之前复习一下关于位运算的知识:
16位数值0x1234中,0x12是高位,0x34是低位
大端序(Big Endian):
高位字节在前(低地址),低位字节在后(高地址)。
存储顺序:0x12 0x34。
Read More
2025-01-08
Comment介绍信号量之前,我们先介绍一下资源这些事
当多个进程同时访问一块共享空间的时候,会出现资源争夺的情况,最终导致数据混乱。
Read More
2025-01-08
Comment消息队列:
消息队列就是一个消息的列表,进程可以在消息队列中添加消息和读取消息
消息队列具有一定的FIFO特性,具有无名管道与有名管道的各自的优势,可以支持任意两个进程的进程间通讯
创建消息队列
用法:
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg....
Read More
2025-01-05
CommentARM核(ARMv7)的寄存器资源
User模式寄存器是基础寄存器集
当处理器运行在其他模式(如 Supervisor 或 IRQ 模式)时,如果对应的模式没有自己独立的寄存器版本,那么就会直接使用 User 模式的寄存器(例如 R0_usr 到 R12_usr)。
某些模式有独立的寄存器版本
快速中断模式(FIQ):
FIQ 模式为了提高中断处理效率,设...
Read More
2023-10-03
Comment不更啦,准备考研了,再见
Read More
2023-09-07
Comment关于继承QThread线程对象在哪个线程中的判断,挺简单,只要记住对象在哪个线程中被创建存在,自身实例对象就在哪个线程中。
在Qt中一个对象的槽函数在被信号触发调用的时候,槽函数在那个线程中执行取决于它的对象属于那个线程中
默认情况一下我们在代码中创建的对象都属于主线程,这个对象的槽函数在调用的时候,占用的都是主线程的时间,我们也可以将一个QObject类型...
Read More
2023-09-06
CommentQDataStream类用于将任意常见类型的数据以二进制写入到指定的目标中,同时也可以按写入的顺序从目标中读取这些类型的数据,实现数据的序列化。
这个操作在通信中很有用,例如:我需要将一个学生对象传递给对方,我只需通过QDataStream把学生对象序列化成一个二进制数据发送给对方,对方通过QDataStream反序列化就可以得到这个学生对象的数据。
数据流...
Read More
2023-09-06
Comment用法
12345678910QTextStream() QTextStream(QIODevice *device) QTextStream(FILE *fileHandle, QIODevice::OpenMode openMode = QIODevice::ReadWrite) QTextStream(QString *st...
Read More
2023-08-10
Comment字符串拼接
QString对于很多运算符做了重载,可以直接用+号,或者.append方法,有时候想要用占位符替代的话,需要以下这种形式:
QString str1 = QString("%1---------------%2").arg("hello").arg(" world!");
这样输出s...
Read More