自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LWIP之四:LWIP内核超时事件处理

LWIP的超时处理机制主要用于管理和处理各种超时事件,包括周期性超时事件和单次超时事件。其核心思想是通过链表来管理超时事件,根据超时事件的超时时间进行排序,并且在合适的时机检查是否有超时事件超时,若超时则执行相应的回调函数。

2025-02-19 00:03:45 358

原创 LWIP之五:ARP协议

LWIP 维护一个 ARP 缓存表,用于存储 IP 地址与 MAC 地址的映射关系。使用结构体数组保存ARP缓存表,ARP缓存表大小由ARP_TABLE_SIZE定义,默认为10。这个缓存表的作用是减少频繁的 ARP 请求,提高网络通信效率。

2025-02-17 23:46:10 746

原创 LWIP之三:LWIP协议栈之数据包缓冲区(PBUF)

LwIP(Lightweight IP)是一个专为嵌入式系统设计的轻量级TCP/IP协议栈,其核心目标是在资源受限的环境中高效运行。PBUF(Packet Buffer)是LwIP中用于管理网络数据包的核心数据结构,负责存储、传递和处理网络数据。PBUF的设计充分考虑了内存效率和数据操作的性能,是LwIP高效运行的关键。

2025-02-17 23:20:15 854

原创 LWIP之二:LWIP协议栈之内存管理

LWIP使用内存池和动态内存堆两种方式实现内存管理。LWIP 提供了丰富的配置选项,允许用户根据系统的资源和性能要求调整内存管理策略。

2025-01-21 18:06:28 791

原创 LWIP之一:使用STM32CubeMX搭建基于FreeRTOS的LWIP工程并分析协议栈初始化过程

使用STM32CubeMX搭建基于FreeRTOS的LWIP工程并分析协议栈初始化过程。

2025-01-05 14:32:38 1542

原创 使用C语言库函数格式化输入时格式类型与数据类型不匹配导致程序异常

格式字符串中的转换说明符必须与要读取的数据类型相匹配。例如,使用%d读取整数,%f读取浮点数,%s读取字符串等。如果类型不匹配,可能会导致数据读取错误或程序异常。

2024-12-18 23:35:01 699

原创 Freertos多核SMP模式下Lwip出现共享资源违规访问问题

在 FreeRTOS 的多核 SMP 模式下,多个内核可能会同时访问 LWIP 相关的资源,如网络缓冲区、协议控制块等。如果涉及到对共享资源的访问,为了防止冲突,可以使用互斥锁或信号量。

2024-12-12 17:30:59 534

原创 解决STM32使用J-Link可以擦除和读取但是无法烧录问题

使用J-Link烧录模组固件,出现可以读取和擦除,但是无法烧录的问题,使用STM32CubeProgrammer更改选项字节中的Read Out Protection解决。

2024-08-22 18:02:24 1336

原创 Ubuntu网络服务无法启动问题

解决Ubuntu20.04卡死重启后网络服务打不开,没有网络图标,无法通过sudo service network-manager restart命令重启网络服务问题。

2024-08-20 10:06:31 1114

原创 STM32裸机和RTOS中的线程安全问题及STM32cubeMX中的线程安全策略

线程安全问题并不只存在于基于RTOS的应用程序中;裸机应用程序中也存在这个问题。C库函数可以进行不那么明显的调用(隐式调用)导致类似的问题。例如,printf()可以调用malloc()。使用STM32cubeMX生成工程时,可选的线程安全策略有五种,如果选择Default,不直接制定,那么裸机应用会自动选择策略2,RTOS应用会自动选择策略4。

2024-08-15 22:53:18 1131 3

原创 Lwip使用RAW API进行TCP连接的tcp_err问题

在连接上发生致命错误时会调用tcp_err_fn定义的回调函数。调用的目的是通知应用程序当前连接发生了致命错误,之后tcp的pcb会被自动释放。

2024-08-05 15:19:00 680

原创 LiteOS使用不当导致软件定时器无响应问题

软件定时器被错误地删除或释放导致无响应。

2024-06-16 20:51:55 296

原创 Ubuntu能联网,只有IPV6地址,没有IPV4地址

Ubuntu突然只显示IPV6地址,没有IPV4地址,可以正常上网。Windows下FTP 客户端使用 FileZilla,主机的地址好像只能填IPV4地址。将IPV4地址由自动改为手动,使用静态IP,同时禁用IPV6。

2024-05-16 21:32:31 1677

原创 Qt6.6添加多媒体模块Multimedia报错问题

解决Qt6.6添加多媒体模块Multimedia报Unknown module(s) in QT: multimedia错误问题,添加其他模块同理。

2024-04-01 22:52:07 2450 2

原创 泰凌微(Telink)8258配置串口收发自定义数据

泰凌微(Telink)8258配置串口收发自定义数据,通过缓冲队列进行收发数据,包含全部实现过程。

2023-12-07 18:27:31 1919 4

原创 Eclipse切换中文环境

Eclipse切换中文环境,下载时要选择跟自己Eclipse版本一致的包,比如我的Eclipse启动界面如下,我就要找Helios的包。

2023-11-17 16:45:15 1534

原创 蓝牙Mesh专有DFU

专有的mesh DFU协议优化为尽可能有效地更新网络中的所有设备。尽管它与nRF5 SDK Bootloader和DFU模块共享一些工具和代码模块,但在协议和操作方面存在一些差异,以便尽可能轻松地更新大量设备。

2023-09-11 16:09:14 733

原创 基于nRF52840 Dongle配合Wireshark对Mesh网络抓包并解析(Nordic)

基于nRF52840 Dongle配合Wireshark对Mesh网络抓包,以通用开关模型为例,通过添加AppKey和NetKey对Mesh消息解析。

2023-09-01 15:51:44 2152 2

原创 蓝牙Mesh设备配网过程及抓包分析

蓝牙Mesh设备配网过程主要分为五个阶段:①信标阶段;②邀请阶段;③交换公钥阶段;④身份认证阶段;⑤分发配网数据阶段。

2023-08-21 15:09:10 3118 18

原创 解决SEGGER Embedded Studio无法显示Nordic MCU外设寄存器问题

解决SEGGER Embedded Studio无法显示Nordic MCU外设寄存器问题。

2023-08-20 18:12:14 756

原创 STM32使用QUADSPI读写外部Nor Flash(以W25Q64为例)

STM32使用QUADSPI读写外部Nor Flash(以W25Q64为例),通过QUADSPI三种模式(间接模式,轮询模式和内存映射模式)的使用来操作W25Q64。

2023-06-13 18:35:35 3638

原创 基于Keil生成外部Nor Flash下载算法,并使用J-Flash直接烧录(以W25Q64为例)

基于Keil生成外部Nor Flash下载算法,并使用J-Flash直接烧录(以W25Q64为例),包括参考文档介绍,下载算法实现过程,避免踩坑。

2023-05-10 23:55:39 7060 7

原创 分别使用软件和硬件SPI驱动1.28寸LCD屏幕刷新时间对比(驱动IC为GC9A01)

分别使用软件和硬件SPI驱动1.28寸LCD屏幕刷新时间对比(驱动IC为GC9A01)

2023-04-24 18:40:59 3403 3

原创 CmBacktrace库在工程中的添加和应用

CmBacktrace库在工程中的添加和应用,包括断言和故障的使用,全局变量的打印,故障函数的修改,串口和软件看门狗的处理等。

2023-04-19 22:02:26 1374 1

原创 使用RT-Thread Studio搭配STM32CubeMX新建RT-Thread项目

使用RT-Thread Studio搭配STM32CubeMX新建RT-Thread项目避坑。

2023-04-11 11:36:29 2661 2

原创 STM32定时器的编码器接口模式

STM32定时器的编码器接口模式,计数器计数方向及编码器旋转方向判断。

2023-03-07 13:16:39 2815

原创 基于STM32L431+Liteos的串口空闲中断加DMA循环接收

串口空闲中断加DMA循环接收。

2023-02-17 16:04:34 1484

原创 蓝牙Mesh学习笔记(一)

Mesh网络分层及概述。

2023-02-13 16:29:39 2541

原创 使用Nordic的nrf52832控制指定从机(一主多从)

1.主机能连接多个从机(主机作为控制器,从机作为节点)。2.主机能使用不同的按键控制不同的节点(按键和节点一一对应,与从机的连接顺序无关)。3.主机扫描过滤器使用设备全称,记录和从机的连接句柄,并进行控制。

2023-01-05 11:01:49 2960 2

原创 使用Nordic的nrf52832进行主从机连接抓包分析

对nrf52832主从机连接过程中产生的数据包进行抓包分析,包括对空中数据包格式分析和主从机交互过程中SN和NESN变化分析。

2022-12-28 16:59:46 2056

原创 Bluetooth LE相关学习笔记

Bluetooth LE相关学习笔记。

2022-12-27 17:29:20 1212

原创 使用Nordic的nrf52840实现蓝牙DFU过程

使用Nordic的nrf52840实现蓝牙DFU过程,包括软件的安装、公私密钥的生成、DFU包制作、HEX文件编辑和升级演示等。

2022-12-22 14:10:17 3839 4

原创 使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)

使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)。

2022-12-15 14:10:09 8278 2

原创 蓝牙开发板青风NRF52840上手第一步避坑

蓝牙开发板青风NRF52840下载Nordic官方例程时出现的错误及解决办法。

2022-10-26 23:37:11 2954

原创 (二)基于STM32L431的Liteos低功耗Runstop模式的实现优化(退出stop2模式后任务相关Tick补偿优化)

基于STM32L431的Liteos低功耗Runstop模式的实现优化(退出stop2模式后任务相关Tick补偿优化),描述了Liteos的任务延时和调度相关的原理。

2022-10-21 14:50:34 1421

原创 (一)基于STM32L431的Liteos低功耗Runstop模式的实现

使用Liteos的develop版本,基于STM32L431的Liteos低功耗Runstop模式的实现,stop2模式下功耗2.8uA。

2022-10-19 21:58:57 2645 5

原创 基于STM32L431的Liteos低功耗Tickless模式的使用

Liteos的Tickless模式通过在执行空闲任务时改变Systick的Reload值来改变systick的中断时间,以此来拉长MCU进入睡眠模式的时间。文中包括相关部分源码的解析(个人理解)。

2022-10-12 17:11:32 1772

原创 Liteos静态内存管理的使用

Liteos静态内存管理的使用,包括申请、清除和释放内存。可以通过计算来合理分配内存池的大小,写入数据时不能超过内存块的大小。

2022-10-08 17:57:25 4399

原创 Liteos信号量的使用

Liteos使用计数信号量时需要注意最大可用信号量的个数。

2022-09-29 16:47:12 568

原创 Liteos消息队列的使用--拷贝方式

Liteos消息队列的使用(拷贝方式),包括创建、读写消息队列及消息队列为满时的处理。

2022-09-28 18:36:17 450

空空如也

空空如也

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

TA关注的人

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