ucOSii任务调度
这里介绍uCOS最重要的任务调度算法:优先级位图法。
熵编码
熵编码是一种独立于介质具体特征的无损数据压缩的方案。通过将输入的每一个字符分配一个唯一的前缀码,将输入的符号替…
CMake交叉编译踩坑
使用cmake搭建交叉编译工具链时出现问题,编译一个arm汇编指令不能通过。
力扣刷题
准备2025年暑期实习以及2025秋招,在力扣刷题。一边刷题一边记录不能够一次做出来的试题,同时归纳知识点。
CPU的Cache和MMU
多数精简指令集的嵌入式MCU内核都没有配备高速缓存,例如cortexM4。在ARMv7-M中,cortexM7…
QEMU模拟VexpressA9建立工程以及串口打印
qemu是一个模拟器,可以用来模拟一些开发板和cpu,也可以直接模拟一个目标架构的linux操作系统。
RISCV体系结构
RISCV是一套开源的精简指令集。
CPU硬件和指令的关系——FPU以及SIMD
对于一套CPU指令集来说,有着对应着这套指令集的架构。例如ARM指令集一定对应着ARM的体系结构,x86的指令…
ARM函数切换栈帧分析
1. 将lr寄存器和fp(r7)寄存器压栈,lr寄存器现在是main函数的返回地址,fp寄存器是上一个函数的栈…
CPU指令集入门
对于一套CPU指令集来说,有着对应着这套指令集的架构。例如ARM指令集一定对应着ARM的体系结构,x86的指令…
Linux下小工具使用
截取一个二进制文件的数据。
Cmake学习
Cmakelists.txt是cmake构建系统的配置文件,可以自动生成构建系统,并且进行编译测试。
折腾编译器Clang+LLVM
在github上找到LLVMProject并下载。
编译器死代码消除
源文件经过预编译,编译,汇编,链接这些过程,最终得到可执行文件。
Keil报错Cannot Load Flash Device Description!
使用Keil打开Cubemx创建的工程文件,编写好代码进行烧录时报错”Cannot Load Flash De…
Keil调试STM32以及性能监控
Keil调试分为硬件调试和软件仿真两部分。
Linux下开发STM32环境搭建
本次搭建环境的大致思路是
STM32Cubemx教程
三种创建项目的方法,一般可以使用前两种分别是选择MCU和选择ST官方开发板。
6.S081课程实验
目前使用的环境是
Linux可运行软件位置和环境变量
任何一个软件都可以将其文件夹放到环境变量中,就可以使用命令唤起这个软件。