自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

【欢迎光临我的 GitHub 】 https://github.com/tidyjiang8

  • 博客(94)
  • 资源 (10)
  • 收藏
  • 关注

原创 ESP32 系列博客 - 目录

【入门篇】ESP32 入门试玩之前言搭建 ESP32 开发环境 —— Hello World[熟悉 ESP32 的图形配置系统 menuconfig][使用 Eclipse 玩转 ESP32][熟悉 ESP32 的构建系统][善于使用 ESP32 的调试工具]【项目篇】[让 ESP32 作为 STA 连接的你的 WiFi 热点][用微信自动给你的 ESP32 配置热点密码][给你

2017-05-01 09:16:37 17861 8

原创 Zephyr OS 系列博客索引目录

Zephyr OS 系列博客目录索引

2016-07-29 14:14:08 2500 3

翻译 IEEE 802.15.4协议完整中文版 - 目录

1 概述2 参考文献3 定义、缩略语和简写 3.1 定义 3.2 缩略语和简写4 通用描述 4.1 概述 4.2 IEEE 802.15.4 的组件 4.3 网络拓 4.4 架构 4.5 功能概述  4.5.1 超帧结构  4.5.2 数据传输模型  4.5.3 帧结构  4.5.4 提高传输可靠性  4.5.5 电源消耗考虑  4.5.6 安全 4.6 原语的概念

2016-05-28 22:22:11 11591 16

转载 BMP文件格式详解

BMP文件格式详解(BMP file format)BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical user interfaces)也

2017-05-28 20:57:57 914 1

原创 用你的 ESP32 做一个音乐电台

本工程源代码托管位置 https://github.com/tidyjiang8/esp32-projects在 GitHub 上找到一个德国小伙移植的 ESP32 音频相关的项目,实现起来比较简单,在这里分享一下。该项目主要是向一个网络服务器获取音乐,然后在 ESP32 上面进行本地解码、播放,从而做成了一个网络电台的功能。【所需硬件】最简单的方案包括:一块 ESP32 开发板一个低功率的喇

2017-05-23 22:10:13 28848 10

原创 使用 OpenOCD 进行单步调试

虽然不喜欢进行单步调试,但是不可否认它的重要性,所以也尝试了一下,以帮助后来有需要的小伙伴。关于 ESP32 的更多博客,请查看 【ESP32 系列博客 - 目录】【安装 OpenOCD】 本人使用的是 Linux 环境,所以第一步请按照你的平台所对应的方法安装 OpenOCD,然后再继续后续操作。为了更好地适配 ESP32,乐鑫对 OpenOCD 进行了一些改动,所以我们必须通过源码安装 O

2017-05-22 15:25:48 12722 1

原创 使用 ESP32 的调试工具 coredump

懒,暂时不想写了,直接帖文档吧,原文路径: ESP32 的 Core DumpESP32 的 Core DumpESP-IDF 支持在遇到不可恢复的软件错误时产生 core dump。这项有用的技术允许发生错误后再分析软件的状态。程序一旦崩溃,系统将进入 panic 状态,打印一些信息并挂起或者重启系统(依赖于配置)。用户可以选择产生 core dump 文件,从而可以在随后在 PC 上分析失败的

2017-05-15 10:46:05 9288

原创 ESP32 + MQTT 连接到中移动物联网云平台 OneNET

功能说明:ESP32 通过 MQTT 连接到中国移动物联网云平台 OneNET应用展示 - https://open.iot.10086.cn/appview/p/1c77653399eb0cdde908b7e1faf1c1aa子模块ESP32 MQTT 组件库功能列表[x] 连接鉴权[x] 心跳包[x] 数据上报(QoS0, QoS1, QoS2)[ ] 平台命令处理(QoS0)[ ]

2017-05-14 21:41:19 16342 7

原创 用微信/APP给你的 ESP32 配置热点密码

功能说明:当 ESP32 作为 STA 或者 APSTA 时,用微信/APP 给它智能配网,让其连接到 WiFi 热点,且不需要蓝牙。【快速开始】【假设】你已经安装好 ESP-IDF 和工具链。你已经有一个 WiFi 热点。【步骤】使用数据线将开发板连接到你的系统中,让系统能够识别到你的板子(Windows 是COM\*, Linux 是/dev/ttyUSB\*)。进入smart_con

2017-05-14 21:35:38 11501 7

原创 给你的 ESP32 进行空中升级

【简化的 OTA Demo】本示例用于演示对固件空中升级的流程。本示例是一个简化版的演示程序,对于实际的产品,你应当使用安全协议,例如 HTTPs。【目标】运行在 ESP32 上面的应用程序可以通过下载一个新的镜像文件并将其存储到 flash 上面来进行更新。在这个例子中,ESP32 在 flash 上面有三个镜像:工厂、OTA_0、OTA_1,它们每个镜像都是一个子包含的分区。OTA 镜像分区的数

2017-05-14 21:28:05 13738 3

原创 让 ESP32 同时扮演 AP+STA 的角色

本工程已托管到 GitHub,具体路径是https://github.com/tidyjiang8/esp32-projects/tree/master/sta功能说明:让 ESP32 既当做一个 AP,让其它终端设备访问,又当做一个 STA,连接到其它的 AP。关于 ESP32 更多好玩、有趣、实用的项目,请查看 【ESP32 系列博客 - 目录】【快速开始】【假设】你已经安装好 ESP-ID

2017-05-14 19:54:00 12521 1

原创 深入分析 ESP32 的 WiFi 状态机

在前一篇博客 让 ESP32 连接到你的 WiFi 热点 中,我们已经简单地分析了一下 WiFi 的工作流程,并简要提示了一下事件调度器/WiFi 状态机,我们将在这一篇博客中详细分析。在 ESP-IDF 中,整个 wifi 协议栈是一个状态机,它在各个时刻都有一个状态。用户可以根据自己的需要,让协议栈在运行到某个状态时自动处理某些工作。理解清楚整个 WiFi 状态机有利于我们编写出更好的应用程

2017-05-12 09:21:04 18736 4

原创 让 ESP32 连接到你的 WiFi 热点

本工程已托管到 GitHub,具体路径是 https://github.com/tidyjiang8/esp32-projects/tree/master/sta功能说明:将 ESP32 当做一个 STA,连接到一个 WiFi 热点。关于 ESP32 更多好玩、有趣、实用的项目,请查看 【ESP32 系列博客 - 目录】本篇主要讲解如何使用该工程,后续几篇将简要分析这个工程的源码,分析清楚其中的来

2017-05-11 16:15:53 25337 4

原创 搭建 ESP32 开发环境 —— Hello World

这里以 Ubuntu 为例。简单记录下自己的安装过程,详细过程请参考中文文档:file:///home/work/esp/esp-idf-doc-zh/docs/_build/html/get-started/linux-setup.html安装依赖包整个 ESP-IDF 环境需要用到很多软件,例如 git make``python等,因此我们需要先将这些软件预装好。sudo apt-get i

2017-05-10 22:27:46 17610 1

原创 ESP32 入门试玩之前言

一次偶然的机会,去参加了由乐鑫和 Pycom 公司组织的 Hackathon 活动,并获赠了一块官方最新的 ESP32 开发板 —— ESP32-DevKitC,到家几次试玩之后,深深地被乐鑫折服,对它爱不释手。 图: ESP32-DevKitC 开发板

2017-05-10 13:46:26 29779 13

原创 Ubuntu 调整扩展显示器的分辨率

由于工作原因,需要经常输出各种信号格式的 HDMI 信号,而 HDMI generator 价格昂贵,对于我们公司来说是稀缺资源,所以多数情况下直接使用笔记本作为 HDMI generator。最简单的调试分配率的方法应该是使用图像界面:System Settings->Displays,但是它只能调整简单的参数,所以还得使用命令行才行。查看系统当前分辨率查看系统当前的信号输出情况:work@ub

2017-04-30 20:41:06 5170

原创 使用 Eclipse 单步调试 Zephyr 程序

使用 Eclipse 单步调试 Zephyr 程序调试环境:Ubuntu+Qemu+Eclipse目录安装 eclipse CDT创建工程编译调试说明安装 eclipse CDT安装 jdk/jresudo apt-get install default-jdk复制代

2017-02-11 13:02:52 3196 8

原创 十分钟!快速搭建 Zephyr OS 开发环境

十分钟!快速搭建 Zephyr OS 开发环境鉴于很多朋友都是在 windows 下玩嵌入式,不熟悉 Linux 环境的搭建、配置过程,却又挡不住对 Zephyr 的强烈好奇心,因此我搭建好了一个现成的 Zephyr 环境,上传到百度云。如果一切顺利的话,下载完成后,十分钟就能体验 Zephyr 了。集成功能安装 Ubuntu-16.04-desktop

2017-02-11 12:59:47 5413 2

翻译 IEEE 802.15.4协议完整中文版 - 5.1.4 同步

5.1.4 同步  本节介绍协调器产生信标以及设备与协调器同步的过程。对于支持信标的 PAN,同步是通过接收信标帧并对其解码完成的;对于不支持信标的 PAN,同步是由设备向协调器轮询数据完成的。5.1.4.1 带有信标的同步  在信标使能的 PAN 中(即 macBeaconOrder < 15),所有的设备应该都具有获取信标并进行同步的能力,以检测是否存在未处理数据或者对信标进行跟踪。只有当信标中

2016-11-04 17:31:48 3404 8

翻译 IEEE 802.15.4协议完整中文版 - 5.1.3 连接和断开连接

5.1.3 连接和断开连接  本节介绍连接和断开连接的过程。5.1.3.1 连接  只有当 MAC 子层执行复位操作后,上层才能尝试将设备与 PAN 进行连接:发出 MLME-RESET.request 原语,其中参数 SetDefaultPIB 被设置为 TRUE;完成 5.1.2.1.2 节所述的主动扫描或被动扫描。信道扫描的结果可以用于选择合适的 PAN 网络。从信道扫描过程返回的 PAN 描

2016-11-04 14:38:51 1993

翻译 IEEE 802.15.4协议完整中文版 - 5.1.2.4 - 5.1.2.5

5.1.2.4 信标的产生  只有当 macShortAddress 不等于 0xffff 时,设备才能发送信标帧。  只有当参数 BeaconOrder 小于 15 时,完整功能设备才能用 MLME-START.request 原语命令开始信标传输。完整功能设备既能够作为新的 PAN 协调器,也可以作为已建立的 PAN 网络中的的设备来发送信标帧, 以哪种身份发送信标帧取决于参数 PANCoord

2016-11-04 14:35:57 1919

翻译 IEEE 802.15.4协议完整中文版 - 5.1.2.3 启动和重组 PAN 网络

5.1.2.3 启动和重组 PAN 网络  本节介绍了 PAN 协调器启动 PAN 网络、重组 PAN 网络以及设备重新 连接到 PAN 网络的过程。5.1.2.3.1 启动 PAN 网络  要启动一个 PAN 网络,需要一个完整功能设备第一次执行 MAC 子层复位。复位过程包括发出 MLME-RESET.reques 原语(参考 6.2.8.1 节),并将 SetDefaultPIB 参数设置为

2016-11-04 14:34:07 2725

翻译 IEEE 802.15.4协议完整中文版 - 5.1.2.2 PAN 标识符冲突的解决

5.1.2.2 PAN 标识符冲突的解决  在某些实例中,可能在一个无线通信范围内存在两个具有相同 PAN 标识符的 PAN 网络。如果发送了这种冲突,PAN 协调器和它的设备应该执行 PAN 标识符冲突的解决过程。  对于简化功能设备来说,该过程是可选的。5.1.2.2.1 检测  如果下列任一情况发生,PAN 协调器将认为 PAN 标识符发生了冲突:  —— PAN 协调器接收到一个信标帧,该信

2016-11-04 14:33:16 2704

翻译 IEEE 802.15.4协议完整中文版 - 5.1.2.1 扫描信道

本节介绍扫描信道、识别 PAN 标识符冲突、启动 PAN 网络的过程。5.1.2.1 扫描信道  所有的设备都应该能够对所规定的一组信道进行被动扫描和孤点扫描。此外,完整功能设备还应该能够进行能量检测和主动扫描。上层可以提出对一个信道页进行扫描的请求。信道页中包含了一组信道,这些信道由变量 phyChannelsSupported 指定。  设备通过 MLME-SCAN.request 原语(参考

2016-11-04 14:32:22 5501

翻译 IEEE 802.15.4协议完整中文版 - 5.1.1.2 - 5.1.1.4

5.1.1.2 接收超帧和发送超帧的时序  在信标模式的 PAN 网络中,普通的协调器(非 PAN 协调器)会维护两个超帧时序:接收到的从其它协调器发送的超帧;自己发出的超帧。两者的相对时序由原语 MLME-START.request (参考 5.1.2.4 节)中的参数 StartTime 指定。图 9 描述了普通协调器发出和收到的超帧之间的关系。图 9. 接收超帧和发送超帧的关系  如果一个设备

2016-11-04 14:26:58 2784

翻译 IEEE 802.15.4协议完整中文版 - 5.1.1 信道访问

5.1.1 信道访问  本节描述访问物理无线信道的机制。5.1.1.1 超帧结构  PAN 网络中的协调器可以使用超帧结构为它的信道访问的时间划分界限。超帧以信标作为它的边界线,包含活跃期和非活跃期两部分。协调器可以在非活跃期进入低功耗(睡眠)模式。  常量 macBeaconOrder 和 macSuperframeOrder 的值用来描述一个超帧的结构。MAC PIB 属性 macBeaconO

2016-11-04 14:23:47 3585

翻译 IEEE 802.15.4协议完整中文版 - 5.1 MAC 功能概述

5. MAC 协议5.1 MAC 功能概述  MAC 子层处理所有对物理无线信道的访问控制,并负责下面的任务:  —— 如果设备是协调器,产生网络信标  —— 与网络信标同步  —— 支持与 PAN 网络关联和解关联  —— 设备安全支持  —— 采用 CSMA/CA 机制访问信道  —— 处理和维护 GTS 机制  —— 在两个对等 MAC 实体间提供可靠链路  设备可以分为两类:完整功能设备(F

2016-11-04 14:13:01 3659

原创 Zephys OS nano 内核篇:环形缓冲 Ring Buffer

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside与栈有点类似,环形缓冲的大小也是在初始化时就固定了。环形缓冲的类型定义环形缓冲的初始化 SYS_RING_BUF_DEC

2016-10-07 17:21:16 1566

原创 Zephys OS nano 内核篇:栈 stack

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside栈的类型定义栈的初始化出栈操作 _stack_popnano_task_stack_pop入栈操作 _stack_p

2016-10-07 17:20:19 845

原创 Zephys OS nano 内核篇:LIFO

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-insideLIFO 是与 FIFO 类似的一种服务,只是它是后进先出的而已。LIFO 的类型定义LIFO 的初始化从 LIFO 中

2016-10-07 17:19:32 823

原创 Zephys OS nano 内核篇:FIFO

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-insideFIFO 的概念FIFO 的定义FIFO 的初始化从 FIFO 中获取数据 _fifo_getnano_task_fi

2016-10-07 17:18:49 807

原创 Zephys OS nano 内核篇:信号量 semaphore

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside信号量是 Zephyr OS 提供的用于不同线程间同步的机制。目前,Zephyr OS 只提供了信号量这一种同步机制。信号量

2016-10-07 17:18:00 909

原创 Zephys OS nano内核篇:定时器 Timer

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside概念Timer 的定义Timer 的 API nano_timer_initnano_timer_startnano_

2016-10-07 17:17:00 1188

原创 Zephys OS nano内核篇:超时服务timeout

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-insideZephys 的内核大总管 _nanokernel 掌握着一个超时链表(sys_dlist_t timeout_q),这个链表

2016-10-07 17:16:16 1007

原创 Zephyr OS nano 内核篇: 等待队列 wait_q

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside本文先描述 Zephyr OS 中线程的状态关系,然后分析线程的等待队列的相关操作。 Zephyr OS 中的等待队列相

2016-10-07 17:13:51 1131

原创 Zephyr OS 内核篇: 内核链表

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside本文先简单地介绍了一些内联函数的知识,然后再详细分析 Zephyr OS 内核中的链表的源码。内联(inline)函数链表

2016-10-07 17:12:40 1104

原创 Zephys OS nano内核篇:原子操作

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-insideZephyr OS 在软件层面提供了一套原子操作相关接口。其实现函数很简单,在操作原子变量前先屏蔽中断,操作完原子变量后再是使

2016-10-07 17:11:45 754

原创 Zephys OS nano 内核篇:fiber 服务

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside本文讲解 Zephyr 中的 fiber 相关的 API: - _nano_fiber_ready() - _fiber_

2016-10-07 17:10:38 673

原创 Zephys OS 内核篇:内核大总管 _nanokernel

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside本文介绍 Zephyr OS 中定义的全局变量 _nanokernel。 在 Zephyr OS 中,定义了一个全局变量

2016-10-07 17:09:11 861

原创 Zephys OS 内核篇:初识线程

Zephyr OS 所有的学习笔记已托管到 Github,CSDN 博客里的内容只是 Github 里内容的拷贝,因此链接会有错误,请谅解。 最新的学习笔记请移步 GitHub:https://github.com/tidyjiang8/zephyr-inside本文讲解 Zephyr OS 用于描述线程相关信息的结构体,内核中几乎其它所有服务都或多或少地使用了该结构体,所以在正式进入内

2016-10-07 17:08:07 906

Zephyr Project 中文文档

Zephyr OS 文档 - 中文版 v1.6.0

2016-12-26

ARM GCC 内联汇编参考手册

ARM GCC 内联汇编参考手册

2016-08-06

RFC4291 英文版

RFC4291 英文版

2016-06-30

RFC4944 英文版

RFC4944 英文版

2016-06-28

RFC4919 英文版

RFC4919 英文版

2016-06-28

IEEE 802.15.4-2006 英文原版

IEEE 802.15.4-2006 英文原版

2016-06-05

Contiki之父Adam Dunkels经典论文

Contiki之父Adam Dunkels经典论文,你值得拥有!

2016-05-22

Contiki-a Lightweight and Flexible Operating System for Tiny Networked Sensors

Contiki之父Adam Dunkels经典论文,是您学习物联网操作系统Contiki的不二选择!

2016-04-05

02.An Adaptive Communication Architecture for Wireless Sensor Networks

Contiki之父Adam Dunkels经典论文,是您学习物联网操作系统Contiki的不二选择!

2016-04-05

空空如也

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

TA关注的人

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