配置ESP32开发环境

常规方法

获取ESP-IDF

此处操作系统为Manjaro 20.0.3 Lysia

打开 ESP-IDF 的 GitHub 项目主页,进入 release ,这里我选择的是4.0.1版本。下载时速度较慢,可使一些方法加速下载,如 Cloudflare Worker 。下载后解压至~/路径下,随后进入目录。

RT-Thread线程管理

RT-Thread的线程调度为优先级抢占式调度。当调度器进行线程切换时,会切换至就绪任务中优先级最高的那个任务,如果中断服务函数(ISR)让一个更高优先级的任务满足运行条件,中断完成时,被中断的线程挂起,优先级高的线程开始运行。对于同优先级的任务,RT-Thread采用时间片轮转调度。

STM32中Flash的读写(HAL库)

在以前的电路中,常常会用到EEPROM (Electrically Erasable Programmable read only memory, 带电可擦可编程只读存储器),EEPROM在掉电后储存的信息不会丢失,一般用于存储设备的设置。

但现在更常用的是Flash(闪存),Flash的特点是结构简单,同样工艺和同样晶元面积下可以得到更高容量且大数据量下的操作速度更快,但Flash每次擦除只能以扇区(Page)为单位操作,而EEPROM可以以字节(Byte)为单位操作。相比EEPROM,FLASH操作过程麻烦,特别是在小数据量反复重写时,所以在MCU中Flash结构适于不需频繁改写的程序存储器

如何在Linux下开发STM32

前言

目前,用于开发STM32的主流IDE以及他们的缺点如下:

  1. MDK(界面太丑,代码补全功能较弱,缺少如大纲、小地图等功能,对于被VSCode惯坏的人简直是折磨😂
  2. IAR(没深度使用过,不好评价)
  3. STM32CubeIDE(基于Eclipse,使用时卡顿明显,代码补全需手动触发)
  4. VisualGDB(功能强大没得说,但有过于专业,有太多我用不上的功能)

于是我决定自己从编译器到调试器,搭建一套适合自己的STM32开发环境。