自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 Ubuntu 点击桌面右上角的设置无反应的解决方法

Ubtunu 在卸载软件是可能会将设置相关依赖一并删除导致设置丢失。此时重新安装 gnome-control-center即可回复正常访问。解决方法:在终端里输入:sudo apt install gnome-control-center输入后再次点击设置,可以看到设置能被正常打开。如下图。...

2021-02-04 15:49:54 2955

原创 ESP_TOOLMAN(二) : 基于 ESP-IDF 将自定义的静态库制作成组件

此篇博客用来描述如何基于 ESP-IDF release/v3.3 添加并使用静态库。具体将分为以下几个部分:静态库的生成将生成的库文件放入 ESP-IDF 指定的存放位置将静态库添加至 cmake 中将静态库添加至 makefile 中1. 静态库的生成这一步说明如何生成后续要用到的静态库,以 static_lib.c和static_lib.h 生成静态库为例。指令如下:xtensa-esp32-elf-gcc -o static_lib.o -c static_lib.c # 将源文

2021-01-08 18:14:53 1731 1

原创 Wi-Fi 类学习资料汇总(不定期更新)

此篇博客用来汇总 Wi-Fi 类学习资料。WIFI:802.11协议帧格式

2020-12-29 17:56:33 582

原创 ESP32 测试(十一):ESP32 Wi-Fi、BLE 等示例的固件大小及优化 & 相关组件大小对比

一. 测试目的经常会有开发者提出基于 ESP32 Wi-Fi、BLE 等示例的固件大小及优化 & 相关组件大小对比,本文将测试针对相关示例进行修改测试。二. 测试环境为了保证测试结果的一致性,采用以下测试环境:esp-idf编写本文时,使用的 esp-idf release 版本对应的 commit 为 7d0f1536e。可通过以下命令确认:git log --onel...

2020-12-23 18:24:57 2578

原创 ESP32 测试(五): Light-sleep 模式下的电流功耗测试及特性(使用 Wi-Fi)

# ESP32 : Light-sleep 模式下的电流功耗测试及特性(连接 Wi-Fi)一. 测试目的经常会有开发者提出基于 ESP32 Light-sleep 模式下的电流功耗问题,本文将测试在连接 Wi-Fi 的情况下 Light-sleep 模式下的 ESP32 的电流功耗。二. 测试环境为了保证测试结果的一致性,采用以下测试环境:esp-idf编写本文时,最新的 es...

2020-12-03 16:44:22 5547 2

原创 ESP32 测试(十):ESP32 Wi-Fi 和 蓝牙 并存时开始睡眠模式的电流功耗

测试目的:ESP32 Wi-F 和 蓝牙 并存时测量出 sleep 模式下 Wi-Fi 和 蓝牙并存时的电流功耗。以下是我的测试环境与过程、测试结果:1.测试环境与过程:硬件部分:ESP32-WROVER-B 模组,ESP-IDF: V4.0 (abdf12dc),与一台示波器。软件部分:在 esp-idf/examples/wifi/power_save 示例里结合了 /esp-id...

2020-12-03 11:43:57 3216 1

原创 git 实践五:生成并使用 git 补丁

此篇博客记录一下如何生成 git 补丁。1. 需求在 commit id 66d3783c897e21204a7bce435c465431152090e6 的基础上修改了部分代码并提交了新的 commit id 58e0518d25e13c43471d25d15abf2717423b93d7。需要把这部分代码改动制作成一个 git 补丁。2. 对应的指令制作补丁 git format-patch your_commit_id使用补丁 git am patch_name.patch3. 操作流

2020-11-24 15:03:32 527

原创 ESP_TOOLMAN(一) : ESP-AT master 库的环境配置

最近(2020.11.11)使用 ESP-AT master 库 时发现配置环境的流程变了,在重重踩坑后在此记录正确的环境配置方法。希望能节约热爱 AT 的开发者一些时间。注:本人使用的系统为 Ubuntu 18.04,如果是 Windows 用户,可以自行探索或下载 Ubuntu 虚拟机。然后执行此文后续的步骤。1. 配置环境的步骤1.1 下载最新的 ESP-AT 库在终端里输入以下指令来下载 ESP-AT 库:git clone --recursive https://github.com

2020-11-19 18:17:59 484

原创 ESP32 Secure boot 与 Flash encryption 过程前后部分问题整理

此篇博客用来整理 ESP32 Secure boot 与 Flash encryption 过程前后部分问题的解决方法。1. secure boot 后重新烧录程序发现无法正常进入 bootloader对应 log 如下:csum err:0x9a!=0x5fets_main.c 371ets Jun 8 2016 00:22:57rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)configsip: 0, SPIWP:0x

2020-09-27 21:50:31 1077

原创 如何在 Ubuntu 上安装 Mosquitto MQTT Broker / Server

MQTT 是基于发布/订阅模型 & TCP / IP 的“轻量级”消息协议,主要用于物联网设备(例如 ESP8266,Raspberry Pi 等)之间的通信。它在资源不足和电池供电的自动化应用(例如智能家居)中非常受欢迎,安全警报系统和电池供电的传感器网络。Mosquitto 是实现 MQTT 协议的开源消息代理(或服务器)。凭借其良好的社区支持,文档和易于安装,它已成为最受欢迎的 MQTT Broker 之一。1 预先准备具有 root 访问权限的 Ubuntu 16.04 服务器在

2020-09-27 13:01:46 3137

原创 ESP 系列杂谈(六):使用 ESP-IDF 编程时的内存使用情况查询

1. 内存使用情况查询以下介绍常用的内存使用情况查询 API,如果想了解更多,请参考 堆内存分配。1.1 esp_get_free_heap_size()在正常编译烧录示例的基础上加入了以下代码来打印空闲堆内存:printf("free_heap_size = %d\n", esp_get_free_heap_size());你可以分别在需要检测内存使用情况的 API 前后添加此 API,如刚进入 app_main() 函数时、完成 Wi-Fi 或 BLE 初始化时和 app_main() 函数

2020-07-15 11:59:56 2090

原创 C 语言杂谈(三):do {...} while (0) 的作用

C 语言中可以使用 do {...} while (0) 进行 #define 多语句宏定义操作,使用 do{...} while(0) 构造后的宏定义不会受到大括号、分号等的影响,总是会按你期望的方式调用运行。以下是示例:1. do {...} while (0) 使用示例首先定义一个多语句宏:#define foo(x) bar(x); baz(x)然后对比以下三种调用方式。1.1 通过 foo(wolf) 调用宏调用宏:foo(wolf);宏扩展后:bar(wolf); baz(

2020-06-16 15:40:51 471 1

转载 CAN 总线数据链路层 & 总线同步机制简析

上一篇文章讲了 CAN总线的历史、标准、物理层,现在接着介绍 CAN 总线数据链路层,和 CAN 总线同步机制。本文转载于 知乎:一口气从零读懂CAN总线。1 CAN 数据链路层在 SPI 通信中,片选、时钟信号、数据输入及数据输出这四个信号都有单独的信号线。而 CAN 使用的是两条差分信号线,只能表达一个信号。简洁的物理层决定了 CAN 必然要配上一套更为复杂的协议。如何用一个信号通道实现同样甚至更强大的功能,答案就是对数据或操作命令进行打包。1.1 通信机制1.1.1 多主机(Multi-Mas

2020-06-09 18:21:52 2523

转载 CAN 总线介绍

此篇文章用来介绍 CAN 协议,绝大部分内容从 知乎:一口气从零读懂CAN总线 转载。0 摘要上世纪八十年代以来,汽车 ECU 越来越多,如 ABS,电控门窗,电子燃油喷射装置。如果仍然采用常规的点对点布线方式,即电线一段与开关相接,另一端与用电设备相通,将会导致车上电线数目的急剧增加,从而带来线束的冗余及维修成本的提高。这就对汽车的线束分布及信息通讯提出了更高的要求。总线技术可以实现信息的实时共享,解决了传统布线方式中线束多,布线难,成本高等问题,CAN(Controller Area Network

2020-06-09 15:09:02 2017

原创 使用 ESP-Prog / Jlink 进行 JTAG 调试时的常见错误及解决办法

此篇博客用来记录使用 ESP-PROG / Jlink 来对 ESP32-Lyrat 进行 JTAG 调试时遇到的一些问题以及解决办法。如果对进行 JTAG 相关操作有疑惑,请参考以下资料:使用 ESP-Prog 进行 JTAG 调试使用 Jlink 进行 JTAG 调试的流程ESP-Prog 下载与调试板介绍1. Error: libusb_open() failed with LIBUSB_ERROR_NOT_FOUND此错误出现的原因是设备没有被找到,相关 log 如下 :openoc

2020-06-03 17:05:33 12413 6

原创 ESP32 快速入门(十一):Secure Boot 与 Flash encryption 的介绍与实践

此篇博客为 ESP32 Secure Boot 与 ESP32 Flash encryption 的介绍与实践。1 ESP32 Secure Boot1.1 ESP32 Secure Boot 功能概述Secure Boot 的目的是保证芯片只运行用户指定的程序,芯片每次启动时都会验证从 flash 中加载的 partition table 和 app images 是否是用户指定的Secure Boot 中采用 ECDSA 签名算法对 partition table 和 app images 进

2020-05-27 16:23:50 1766

原创 FreeRTOS 小技巧(二):如何诊断内存泄漏

这篇博客用来说明如何在 FreeRTOS 中诊断在哪里发生了内存泄漏。1. 诊断内存泄露的步骤如果你怀疑内存泄漏,则第一步是弄清楚程序的哪一部分正在泄漏内存。使用 xPortGetFreeHeapSize() 或 heap_caps_get_free_size() 来跟踪在应用程序生命周期里的内存使用。尝试将泄漏范围缩小到单个功能或一系列功能,因为在这些功能或功能序列中,可用内存总是会不断的减少。一旦通过上述 API 确定了您认为正在内存泄漏的代码段后,你需要进行以下操作来诊断内存泄漏:通过 m

2020-05-22 11:03:46 2799

原创 FreeRTOS 小技巧(一):打印系统当前的任务列表,任务状态优先级,使用率等信息

此篇博客用来记录如何在使用 FreeRTOS 打印系统当前的任务列表,任务状态优先级,使用率等信息。1. vTaskList使用 vTaskList() 能打印任务名任务状态优先级剩余栈任务序号使用示例如下:void app_main(){ xTaskCreate(test_task, "test_task", 4096, NULL, 6, NULL); static char InfoBuffer[512] = {0}; while (1) {

2020-05-18 11:45:15 4485

原创 文件格式转换小工具汇总(不定期更新)

此篇博客用来汇总好用的文件格式转换小工具。1. .pages 文件转换为 .doc 文件Cloudconvent

2020-05-08 11:57:17 319

原创 VSCode 编程超好用插件推荐(不定期更新)

此篇博客用来整理 VSCode 里的一些非常好用的插件。以下所有插件均可在 VSCode 左上角的 Extensions (或 按下 Ctrl + Shift + X)里搜索并下载。1. GitLensGitLens 是一个 VSCode git 插件,它可以显示当前行的 commit 信息等,比如此行何时被修改,被谁修改等。参考链接:VSCode git 插件 GitLens 显示当前行...

2020-05-06 10:38:33 2217

原创 windows 下安装使用 Omnipeek v10.0.1 进行 Wi-Fi 抓包

Omnipeek 是一款功能强大的网络报文扫描软件,它不仅可以扫描有线网络下的报文信息,还可以针对无线网卡进行监控和扫描。通过该软件我们可以更清晰更快捷的定位无线网络故障,根据扫描结果调整自己的无线设备的参数信息。注:点 这里 查询 Omnipeek 支持的无线网卡。1. 软件安装 & 驱动配置你需要准备:一台 Windows 电脑无线网卡:Cisco WUSB600N 无...

2020-04-30 12:01:59 9409

原创 Wi-Fi & 路由器相关知识点汇总(不定期更新)

此文用来汇总 Wi-Fi & 路由器 知识点。1. HT (High Throughput) 20 & 40802.11n 有两种频宽模式:HT (High Throughput) 20和 HT 40。HT20 是出于兼容性考虑:比如,一个区域内存在 8 02.11b/g 信号,那么为了尽量减少对它们的干扰,需要设定为 HT20,以减少频带的重叠。HT40是出于高性能考虑:...

2020-04-29 10:23:33 690

原创 Ubuntu18.04 使用 deepinwine 安装企业微信后无法查看图片/头像的解决方法

在终端输入:sudo apt install libjpeg62:i386然后重新启动企业微信就可以了~

2020-04-26 11:38:37 4385

原创 Ubuntu 下的 wireshark 安装与使用(使用无线网卡)

本文分为以下两个部分:wireshark 安装wireshark & 无线网卡的使用1. wireshark 的安装打开终端,在终端运行:sudo apt-get install wireshark来完成 wireshark 的安装。安装过程中可能会遇到 是否授权非 root 用户 抓包权限 的声明,选择 yes。然后就可以输入 sudo wireshark 来打开 w...

2020-04-22 15:24:16 1669

原创 ESP32 使用 gdbgui 进行 JTAG 调试

在此篇博客中,你将学习到如何使用 gdbgui 进行 ESP32 JTAG 调试。博客将分为以下几个部分:gdbgui 的安装ESP-Prog/Jlink 硬件接线方法打开 OpenOCD打开 gdbgui 并进行调试gdbgui 相关操作1. gdbgui 的安装gdbgui 有两种主流安装方式:使用 pipx 进行安装使用 pip 进行安装1.1 使用 pipx ...

2020-04-20 21:57:10 1439

原创 gdb 调试入门(三):在 vscode 中使用 gdb 进行调试

在安装完 gdb 后,就可以尝试使用 gdb 在终端中调试程序了,此文尝试使用 vscode 进行 gdb 调试。如果对安装 gdb 存在疑惑,请参考 gdb 调试入门(一):Windows/Linux/Ubuntu 下安装 gdb。1. 打开 VSCode 并启动调试窗口打开 VSCode,按下 Ctrl + Shift + D,此时会默认跳转至 Debug 窗口。如下:一般情况下默认是...

2020-04-16 10:43:13 56071 9

原创 gdb 调试入门(二):使用终端进行 gdb 调试

在安装完 gdb 后,就可以尝试使用 gdb 在终端中调试程序了,1. 创建或定位到需要调试的 .c 文件首先编写一个简单的 helloworld.c:#include<stdio.h>int main(){ printf("hello world! \n"); return 0;}你也可以定位到你需要调试的 .c 程序,然后开始下一步。2. 编译文件...

2020-04-15 21:07:54 2469

原创 gdb 调试入门(一):Windows/Linux/Ubuntu 下安装 gdb

首先我们需要安装 gdb,以下分为 Windows 与 Linux/Ubuntu 两个平台:1. Windows 下安装 gdb:请参考:在 Windows 下安装编译 GDB 调试工具2. Linux/Ubuntu 下安装 gdb:2.1 方式一:apt-get打开终端,在终端里输入以下指令:apt-get updateapt-get install gdb安装时需要选择 y...

2020-04-15 17:54:46 35564

原创 Linux 常用知识点(四):用户切换

有时需要进行 Linux/Ubuntu 用户切换,可以使用 su 指令,如切换到 root:sudo su若再想切回到用户 bob,只需要再次使用 su:su bob

2020-04-15 11:00:52 158

原创 Linux 常用知识点(三):保存终端的 log 信息

有时候需要保存终端的 log 信息,此时可以在终端里使用以下指令:sudo script output.log然后在此终端输入的所有指令以及终端打印的所有信息都会被记录到 output.log,如果已经不需要保存信息,在此终端里输入:exit即可停止保存信息。...

2020-04-14 17:37:47 2563

原创 ESP32 使用 Jlink 进行 JTAG 调试的流程

这篇教程用来带领实现 Ubuntu/Linux 下 ESP32 使用 Jlink 进行 JTAG 调试。分为如下几步:1. 安装 OpenOCD如果你已经按照 esp-idf 快速入门 一文中的介绍安装好了 ESP-IDF 及其 CMake 构建系统,那么 OpenOCD 已经被默认安装到了你的开发系统中。在 设置开发环境 结束后,你应该能够在终端中运行如下 OpenOCD 命令:openo...

2020-04-14 17:31:41 8792

原创 Linux 常用知识点(二):终端命令行换行

在终端里有时候会遇到单行指令太长,不方便输入的情况,此时需要进行 换行,在需要换行的地方添加 "\" + "ENTER" 即可实现换行。例子如下:./bin/openocd -s share/openocd/scripts -f interface/jlink.cfg \-f board/esp32-wrover.cfg等同于:./bin/openocd -s share/openocd...

2020-04-14 17:21:49 16316 3

原创 Minicom 小技巧 & 注意事项(不定期更新)

在 ubuntu 中可以使用 Minicom 的以下指令来观察串口信息并保存:minicom -c on -D /dev/ttyUSB0 -C ./20200414.logl

2020-04-14 11:59:45 318

原创 C 语言小技巧(不定期更新)

此篇博客用来归纳 C 语言一些小技巧。1. 在函数内打印函数名printf("函数名字: %s \r\n", __func__);

2020-04-10 15:52:22 222

原创 ESP32 快速入门(九):自定义 ESP32 分区表 partitions.csv

最近在 ESP32 编译中遇到了以下问题:esp_image: Image length 1057652 doesn't fit in partition length 1048576boot: Factory app partition is not bootableboot: No bootable app partitions in the partition table这里应该是...

2020-04-10 15:42:40 4377

原创 CuteCom 小技巧 & 注意事项(不定期更新)

这篇文章用来记录 CuteCom 采过的一些坑。1. 右下角 CR,CF line end 调整问题描述: 无论 input 什么,就会原样输出在显示屏上。解决方案:将右下角的 end 形式改为 CR,CF line end。接下来就可以正常使用了。注:回车”(Carriage Return)和“换行”(Line Feed)CR 用符号 ’\r’ 表示, 十进制 ASCII 代码是 1...

2020-04-09 16:16:14 4043

原创 Linux 常用知识点(一):.sh 文件的创建与打开

在开发的过程中免不了接触 .sh 文件。在此简单整理一下 .sh 文件的创建与打开。1. 创建 .sh 文件打开终端 依次输入以下内容即可创建并执行 .sh 文件:touch helloworld.shgedit helloworld.sh此时会弹出一个可编辑页面,在此可编辑页面中输入:#!/bin/bashecho "Hello world!!"保存上述可编辑页面。然后继续...

2020-04-08 16:04:11 27562

原创 git 实践四:使用 git 比较 esp-idf 两个不同分支的 commit

今天我们来实践:使用 git 比较 esp-idf 两个不同分支的 commit,在这里我想比较的是 esp-idf 的 v3.3.1 与 v3.1.6。话不多说,直接进入正题吧!1. git 相关指令与输出文本展示我们先来直接了解使用的 git 指令与输出文本,随后在后续的小节中我们来逐一分解学习指令中的每个部分所具有的功能。以下是我使用的 git 指令:git shortlog --le...

2020-01-13 20:34:20 523

原创 ESP32 测试(六):ESP32 空闲堆内存测试

一. 测试目的经常会有开发者提出基于 ESP32 的空闲堆内存问题,本文将测试在连接 Wi-Fi 和连接 BLE 的情况下 ESP32 的空闲堆内存大小。二. 测试环境为了保证测试结果的一致性,采用以下测试环境:esp-idf编写本文时,使用的 esp-idf release 版本对应的 commit 为 2befd5c。可通过以下命令确认:git log --oneline ...

2020-01-09 17:28:02 1659

原创 Espressif IDF for VSCode 爬坑之路二:ESP32 的 JTAG 调试(OpenOCD & GDB)

今天我们来探索如何在 Espressif IDF 插件里进行 JTAG 调试。如果还未成功安装与入门 Espressif IDF for VSCode,可以先参考 Espressif IDF for VSCode 爬坑之路一:ESP32 的 esp-idf 例子编译与烧录。1. JTAG 调试前的准备如果要在 Espressif IDF for VSCode 里启动 JTAG 调试功能,只需...

2020-01-09 15:43:21 5196

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除