嵌入式 | 物联网
文章平均质量分 64
MurphyZhao
沉下心去,奋斗未来
https://github.com/murphyzhao/
展开
-
32位 STM32 打印 uint64_t 类型
测试代码,未整理,可参考!原创 2023-08-24 10:15:32 · 711 阅读 · 0 评论 -
LwIP 2.0.3 迁移 LwIP 2.1.2 注意事项(源地址和目的地址位置调换问题)
LwIP 2.0.3 迁移 LwIP 2.1.2 注意事项如果你使用了自定义的 router hook,那么请检查你适配的 hook 接口,确定 dest 和 src 顺序是正确的。在 LwIP 的 CHANGELOG 里有以下描述: 2017-08-08: Dirk Ziegelmeier * ip4_route_src: parameter order is reversed: ip4_route_src(dest, src) -> ip4_route_src(src, dest)原创 2021-10-16 13:07:41 · 1004 阅读 · 0 评论 -
linux hostapd EAPOL四次握手日志(基于 RTL8189 SDIO wifi 模组)
1. 发送 EAPOL 请求,携带 ANonce:WPA: Assign ANonce - hexdump(len=32): 10 0e 61 c2 b8 33 67 85 59 64 db b2 c8 e1 07 56 4b ba 63 9c 78 53 18 ba 28 6f e8 e2 fc 10 cf 3dWPA: f8:ac:65:c1:67:22 WPA_PTK entering state INITPSKSearching a PSK for f8:ac:65:c1:67:22 pre原创 2021-04-16 14:28:33 · 1766 阅读 · 0 评论 -
解读乐鑫 AT 指令解析器,解锁你不知道的用法
欢迎关注、星标????畅享精彩内容由于近期正好在做这个事情,所以今天就以乐鑫的 AT 指令为例,讲讲 AT 解析器设计有哪些事情,也算是个自己近期的学习总结了。往期文章回顾1、AT 指令介绍2、初体验乐鑫 ESP32 AT 指令少有人关注的 AT 解析器互联网上很多 xxx AT 指令使用教程,为何少有人关注 AT 解析器呢?情况是这样的,绝大部分开发者是拿 AT 固件来开发产品的,只有很少一部分人是开发 AT 固件的。AT 固件通常是由芯片原厂、模组厂商来提供的,并且大多模组厂商也原创 2021-01-31 18:05:08 · 1432 阅读 · 4 评论 -
AT指令介绍
AT 指令介绍AT(Attention)指令是由 Dennis Hayes 发明的,所以也称为 Hayes command set。AT 指令最初是用来指导 modem 工作的,后面随着技术的发展,低速 modem 已经退出了市场,但 AT 指令却不断发展,并且在今天 AT 指令依旧扮演这非常重要的角色。虽然在 PC 端、手机上已经没有了 AT 的使用,但其却在嵌入式行业里各类联网模块中发挥着重要的作用,而且不仅仅只应用在蜂窝模块,还应用到了 WiFi、BLE 等模块中。相关标准随着技术的发展,目前原创 2021-01-13 13:17:48 · 5973 阅读 · 1 评论 -
C 语言编程风格
文章首发于 “物联网学前班” 公众号,关注查看更多精彩内容。C 语言编程约定此文为约定,并非规范,由自己的编程习惯总结而来。文件字符编码一切的前提。强烈建议使用 UTF-8 编码格式。UTF-8 编码已经广泛应用在 WEB 中,是首选的编码格式。UTF-8 编码是 Unicode 标准中的变长编码方式,可以表示 Unicode 中任意一个字符,使用1~4个字节表示字符,且字节顺序无关。统一使用 UTF-8 字符编码可以避免各种乱码问题的出现。但是使用 UTF-8 编码格式的目的并不是为原创 2021-01-01 23:24:02 · 1220 阅读 · 1 评论 -
奋斗了四年的 NB-IOT 怎么让 Cat.1 成了最靓的仔?
文章首发于“物联网学前班”公众号奋斗了四年的 NB-IOT 怎么让 Cat.1 成了最靓的仔?NB-IOT 和 eMTC 怎么样了?Cat.1 是什么首先 Cat 是 Category 的缩写,中文意思是“类别,种类”,在 3GPP 中指 UE-Category(UE: User Equipment,用户设备)。另外,Cat 后面的数字即代表不同的种类,3GPP 将不同种类的网络用 “Cat.X” 格式命名。根据 3GPP Release 定义,Cat.X 这个值是用来标识设备无线性能等级.原创 2020-05-19 18:09:06 · 7233 阅读 · 2 评论 -
国产嵌入式操作系统发展思考 | 何小庆
国产嵌入式操作系统发展思考偶然翻到了这篇老文章,出自何小庆(《嵌入式操作系统风云录:历史演进与物联网未来》作者),写的很好,汇总了当下国产 OS 的状态,遂分享出来。本文源自微博“麦克泰技术”,物联网学前班公众号经授权转载分享。嵌入式操作系统历史悠久、门类繁多、用途广泛,不仅包括嵌入式实时多任务操作者系统(RTOS)、开源的 Linux、机器人和路由器操作系统,还包括新型的物联网操作系统,...转载 2020-02-15 11:30:53 · 1751 阅读 · 0 评论 -
C 语言 #、##、__VA_ARGS__
‘#’ 和 ‘##’ 属于预处理标记。‘#’ 和 ‘##’ 用于类似函数的宏定义中(或者简称为宏定义函数)。‘__VA_ARGS__’ 是 C99 引入的用于支持宏定义函数中使用可变参数。操作符 ‘#’在宏定义展开的时候,标记 ‘#’ 用于将 ‘#’ 后面的宏定义函数中的参数转化为对应的字符串。宏定义函数的参数与预处理标记 ‘#’ 之间出现的每一个空格都会被删除,并删除第一个预处理标...原创 2020-01-05 21:34:18 · 841 阅读 · 2 评论 -
MicroEJ 基本认识
MicroEJ 是做虚拟机的,现在也涉略物联网领域,其推出了 MicroEJ VEE 产品,VEE 是一个标准,安全,可靠的嵌入式软件平台,能够在包括微控制器(MCU),微处理器(MPU)和片上系统(SoC)在内的任何处理器上运行。具有所有标准服务的嵌入式物联网虚拟执行环境。参考官网VEE 介绍...原创 2019-11-25 10:16:28 · 1743 阅读 · 0 评论 -
开源智能手表 Bangle.js 记录
Bangle.js is an open, hackable smartwatch. Bangle.js 是一个开源的、可定制的智能手表。Bangle.js 使用 JavaScript 或图形化编程语言(Blockly)轻松开发自己的应用。您只需要一个 Web 浏览器(Chrome,Edge或Opera),即可上传应用程序或编写代码以在手表上无线运行!Bangle.js 具有防水功能和 AI 功...原创 2019-11-25 10:08:30 · 1541 阅读 · 0 评论 -
RT-Thread TCP/UDP 客户端程序(RT-Thread SAL TCP UDP client)
最近发现不止一个人再要基于 RT-Thread 的 TCP 和 UDP 示例代码,包括 SAL 方式的。这里给出一个我自己写的示例程序吧,希望可以帮到需要的人。TCP 客户端/* * Copyright (c) 2006-2019, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Chan...原创 2019-11-11 18:15:28 · 3651 阅读 · 0 评论 -
NB-IOT 模块 MT2625 使用总结
MT2625 NB-IOT SOC 应用AT 建立 UDP 连接查询 apn:AT+CGDCONT?激活 apnAT+EGACT=1,1,“cmnbiot6”,"",""其中 cmnbiot6 为查询到的 apn建立 socketAT+ESOC=1,2,1建立连接AT+ESOCON=0,PORT,“IPADDR”AT+ESOCON=0,2039,“114.116...原创 2019-09-20 17:56:31 · 4088 阅读 · 0 评论 -
不同编译器下 errno 与 RT-Thread 的对接
支持的编译器RT-Thread 支持的编译器有 newlib/minilibc/dlib/armlibc 的支持。在开启了 RT_USING_LIBC 后,GCC 编译使用 newlib未开启 RT_USING_LIBC 时,GCC 编译使用 minilibcdlib 是 RT-Thread 针对 IAR 编译器的移植适配(使用标准库接口时注意开启 RT_USING_LIBC)arml...原创 2019-04-16 10:12:56 · 1711 阅读 · 0 评论 -
TcpClient 示例程序 C 语言
TCP client 示例程序关键词:TCP 客户端代码TCP client 代码LWIP TCP 客户端程序LWIP TCP client 代码每一次调试网络相关的代码都需要一段最简单的 TCP 测试程序,后来就把这个程序记录到了代码片段,今天在自己的博客里再次记录下,希望更方便查找。简单的 TCP 客户端程序源码本代码在 RT-Thread OS 下测试使用,并验证通过。...原创 2019-06-20 18:59:56 · 5125 阅读 · 0 评论 -
记录 RT-Thread netdev 结构体与 lwip 结构体不匹配 bug 的调试过程
本文主要记录在使用 RT-Thread Netdev 组件的时候遇到的一个结构体不匹配的 bug。背景本次 bug 只要涉及 4 个文件:netdev.h:定义了 struct netdev 数据结构netdev.c:netdev 源码实现,这里主要涉及 netdev_low_level_set_link_status 接口netif.c:lwip 网卡相关接口,这里主要涉及 neti...原创 2019-06-17 16:24:22 · 1085 阅读 · 0 评论 -
RT-Thread Pin 设备驱动框架快速对接
为什么需要 Pin 设备驱动框架跨平台可移植应用操作简单试想下面这个场景:你基于 STM32 MCU 编写了一个包含很多 GPIO 操作的应用程序,GPIO 控制函数使用的是 HAL 库。后面,由于某种原因,MCU 需要更换,使用的是 NXP 的芯片,不支持 HAL 库,那你怎么办?通常,你会查找所有 GPIO 操作相关的接口,然后替换成 NXP 提供的 GPIO 驱动函数,如果 ...原创 2019-07-10 08:41:22 · 1719 阅读 · 0 评论 -
Cortex-M3/4 调试技巧、STM32 调试手段
Cortex-M3/4 一些调试技巧今天主要总结下这段时间在没有 调试器 情况下,解决 bug 的一些辅助调试手段。在没有 调试器 的情况下,进行代码调试的手段就只有 log 大法,为了能够尽可能详细地输出有用的调试信息,往往我们需要将 调用栈 、R0- R15 寄存器、SCB、中断状态、线程状态等信息打印出来,然后配合 反汇编 进行调试跟踪代码。这会用到一些特殊的函数(内链汇编函数),下面将...原创 2019-07-04 20:57:26 · 1779 阅读 · 1 评论 -
RT-Thread DHT11 温湿度传感器驱动
分享一个我整理的 DHT11 温湿度传感器驱动 dht11_rtt 软件包dht11_rtt 是基于 RT-Thread 物联网操作系统实现的 dht11 驱动软件包,该软件包托管在 GitHub,使用 Apache-2.0 协议许可。dht11_rtt 驱动使用了 RT-Thread Sensor 传感器框架和 Pin 驱动框架,因此在使用的过程中需要开启这两个功能。不过,在使用 RT-...原创 2019-08-17 22:32:48 · 3262 阅读 · 1 评论 -
ARM GCC 库打桩——符号替换
开发中,难免会遇到只有库没有源码的情况,调试的时候,库里的几个函数又非常关键,那我们怎么控制里面的流程呢,并插入自己代码?这个时候就需要使用 GCC 工具重定义库中的符号,然后在外面包装该函数。举例:一个库:lib_test.a库中的函数:void hello_test_lib(void);现在,我们想把库里面的 hello_test_lib 函数替换为 new_hello_test_l...原创 2019-09-05 18:08:22 · 846 阅读 · 0 评论 -
单个文件编译优化配置
单独设置一个 C 文件的优化级别,支持 MDK、IAR、GCC,代码如下:#if defined(__CC_ARM) #pragma O1#elif defined(__ICCARM__) #pragma optimize=none#elif defined(__GNUC__) #pragma GCC optimize ("O0")#endif...原创 2019-09-17 13:59:55 · 479 阅读 · 0 评论 -
C语言内存 dump 函数
按照 beyond compare 形式输出内存数据,使用 HEX 方式。代码如下:#define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')void dump_hex(const uint8_t *ptr, uint16_t buflen){ unsigned char *buf = (unsigned ...原创 2019-09-18 12:08:04 · 4639 阅读 · 0 评论 -
灵活的按键处理程序 FlexibleButton,C程序编写,无缝兼容任意的处理器,支持任意 OS 和 non-OS
灵活的按键处理程序 FlexibleButton前言正好工作中用到按键处理,需要处理单击、长按等按键事件,然后就造了这么一个轮子,为了以后更方便地加入其它的项目中使用,遂将其开源到 GitHub 中。后面发现 RT-Thread 软件包里也有一个开源的按键库 MultiButton,看到这个按键库的时候,心想,完了,又重复造轮子了,好伤心原创 2018-12-14 08:49:57 · 1654 阅读 · 2 评论