文章

  • 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可运行软件位置和环境变量

    任何一个软件都可以将其文件夹放到环境变量中,就可以使用命令唤起这个软件。