2025-09-24
Comment灵感,总是在不经意的时刻突然出现。这顽皮的小精灵怕人,刻意去寻找它,反而会迷失方向。
内存访问指令
LDR和STR
这两条指令,在一条语句中只能对单个寄存器进行内存读写。
LDR的功能是把内存中的数据拿出来装载到寄存器。
1LDR Rd,[Rn,#offset] @从Rn内存地址中产生offset偏移量,在之后的内存中读取数据加载到Rd中
STR的...
Read More
2025-09-16
Comment多久了,多久没有写博客了。很久了。
大半年以来,一直在名为探索的道路上盘旋。期间发生了很多事,但都只是经历。
我总说,人是一座座孤岛,我用它来将人与人之间的理解隔离开来。所以,当我遇到一些人,不理解我的时候,或者我无法理解他人的时候,我就会把这句话当作是我唯一的真理,继而封锁自己。
但我觉得我这样做不太妥当。
闲谈的话就先说到这吧,毕竟标题上来讲,是要写arm相关的事情的。
Read More
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