自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lanzh_syf的博客

探索是一个人的天性!

  • 博客(89)
  • 资源 (3)
  • 收藏
  • 关注

原创 ARM架构运行模式学习笔记

ARM处理器支持多种运行模式,包括用户模式(普通应用)、特权模式(如FIQ/IRQ中断处理、系统管理等)以及安全扩展模式(TrustZone)。不同模式具有各自的寄存器组和访问权限,适用于从嵌入式系统到移动设备等多样化场景。ARMv8架构引入异常级别(EL0-EL3)替代传统模式,支持64位操作和安全监控。Cortex-M系列则简化为线程模式和处理模式,优化实时性能。开发时需注意合理分配任务、优化中断处理并遵循安全原则,以充分发挥各模式特性。

2026-03-22 12:33:43 439

原创 i.MX6ULL NAND Flash 烧录脚本说明

本脚本用于通过UUU(Universal Update Utility)工具将完整的Linux系统烧录到MYS-6ULL-Y2开发板的NAND Flash中。

2026-03-20 17:13:58 387

原创 U-Boot学习笔记(NXP IMX6ULL)

本文档全面介绍U-Boot引导加载程序,包括其功能特点、目录结构、启动流程和开发方法。U-Boot支持多种处理器架构,提供硬件初始化、命令行交互和内核加载等功能。文档详细解析了U-Boot的模块化目录结构,区分了U-Boot提供和厂商定制的内容,并阐述了启动流程的关键阶段。此外,还提供了硬件初始化方法、常用GPIO操作函数,以及编译所需的工具链和具体编译步骤,为嵌入式开发者快速上手U-Boot开发提供了实用指导。

2026-03-20 13:23:11 407

原创 ONNX 与 RKNN 模型处理详细对比笔记

本文对比了ONNX和RKNN模型在目标检测任务中的差异。ONNX作为通用格式适用于多种硬件平台,采用NCHW输入格式;而RKNN专为Rockchip芯片优化,使用NHWC输入格式并利用NPU加速。两种模型的输出均为6维向量,但坐标表示方式不同:ONNX输出绝对坐标,RKNN输出归一化坐标。预处理步骤都包含图像缩放、BGR转RGB和归一化处理,但数据布局转换方式有所区别。这些差异直接影响模型在不同硬件平台上的部署方式和性能表现。

2026-02-06 13:57:18 849

原创 由Yolov8n 的PT模型转换而来的ONNX模型推理C++接口类

本文介绍了基于YOLOv8模型的ONNX检测器实现,对比了Python(Ultralytics库)和C++(ONNX Runtime)两种实现方式的关键差异。Python版本提供结构化结果输出(自动NMS处理),而C++版本需要手动解析原始张量并实现NMS算法。重点展示了C++实现中的ONNXDetector类设计,包含模型加载、预处理、推理和后处理完整流程。该类封装了图像缩放、格式转换、IoU计算和NMS等核心功能,支持自定义置信度阈值,并提供检测结果可视化方法。代码结构清晰,通过头文件和源文件分离实现模

2026-02-03 10:29:46 235

原创 C++ ONNX Runtime 与 Python Ultralytics 库实现 YOLOv8 模型检测的区别

本文对比了Python Ultralytics库与C++ ONNX Runtime实现YOLOv8目标检测的差异。Python方案通过ultralytics库一键安装,仅需1-2行代码即可完成完整推理流程,自动处理预处理、推理和后处理。而C++方案需手动安装依赖库,编写预处理(图像缩放、格式转换)、推理(ONNX Runtime API调用)和后处理(NMS算法实现)代码,输出需手动解析原始张量数据。Python适合快速开发,C++更适合性能优化场景,两者在环境配置、代码复杂度和开发效率上存在显著差异。

2026-02-02 17:14:15 748

原创 Rust多线程编程学习笔记

本文介绍了Rust语言中的多线程编程基础和实践方法。主要内容包括:同步线程编程(线程创建、通信、共享状态、返回值和线程池)、异步线程编程(Tokio运行时、异步任务和通道)、线程安全机制(所有权、同步原语、Send/Sync trait)以及性能优化技巧。Rust通过独特的所有权系统和类型系统保障线程安全,避免数据竞争问题。文章提供了详细的代码示例,展示如何实现线程间通信、状态共享和任务处理,并比较了同步与异步编程的特点和适用场景,为开发者提供了Rust多线程编程的全面指导。

2026-01-30 11:53:50 657

原创 YOLOv8n 输入输出格式笔记

本文详细介绍了YOLO模型的输入输出格式,包括PyTorch和ONNX两种版本。PyTorch模型输入为torch.Tensor,形状为(batch_size, 3, height, width),输出包含原始检测结果和后处理结果;ONNX模型输入为numpy.ndarray,输出为List[ndarray]。两种模型都支持自动预处理,输出格式在多类别和单类别模型中有所不同,主要区别在于第4、5索引的含义。Ultralytics库可统一处理两种模型的输入输出,简化使用流程。

2026-01-30 11:35:18 796

原创 C++ 多线程【笔记】

本文深入解析C++多线程编程技术,涵盖同步和异步两种编程范式。在同步编程方面,详细介绍了互斥锁(Mutex)、条件变量(Condition Variable)等基础同步原语的使用方法,以及读写锁(Read-Write Lock)和屏障(Barrier)等高级同步模式的实现。异步编程部分重点讲解了Future/Promise模式,展示了如何通过std::async创建异步任务,以及使用std::promise主动设置异步操作结果。代码示例涵盖了线程安全计数器、有界缓冲区、线程安全哈希表等典型应用场景,并介绍了

2026-01-03 16:00:02 257

原创 C++ 引用【笔记】

本文深入探讨了C++引用的核心概念与应用。首先分析了引用的本质与内存布局,对比了引用与指针的关键区别。然后详细介绍了左值引用与右值引用,包括移动语义的实现原理。接着讲解了模板中的万能引用和完美转发技术,以及引用限定成员函数的用法。文章还涵盖了引用生命周期延长规则和临时对象处理的注意事项,最后展示了引用在函数式编程中的典型应用场景。这些内容系统性地覆盖了C++引用机制的核心知识点,为深入理解现代C++编程提供了重要参考。

2026-01-03 15:49:44 297

原创 C++ 模板【笔记】

本文系统介绍了C++模板编程的核心概念与高级技巧。首先阐述了模板编译的两阶段机制,包括实例化过程和语法检查阶段。随后深入解析了函数模板的推导机制、完美转发、SFINAE等特性。在类模板部分,重点讲解了特化、可变参数和模板元编程技术。最后介绍了模板设计模式,包括CRTP和策略模式等实用技巧。全文通过丰富的代码示例,展示了模板编程的强大功能与灵活性,为开发高效、类型安全的C++程序提供了有力工具。

2026-01-03 15:46:50 344

原创 C++智能指针【笔记】

智能指针是现代C++中管理资源的核心工具,遵循RAII原则实现自动资源管理。unique_ptr提供独占所有权,通过删除拷贝构造函数确保资源唯一性,支持移动语义和自定义删除器。shared_ptr采用引用计数机制实现共享所有权,但需注意循环引用问题,可通过weak_ptr解决。weak_ptr作为弱引用不增加计数,需通过lock()检查对象有效性后使用。这些智能指针共同构成了C++安全高效的内存管理方案,有效防止资源泄漏。

2026-01-03 15:43:32 270

原创 STM32 F4移植LVGL 9.4.0版本教程(Keil工程,裸机)

本文介绍了在STM32F4项目中移植LVGL 9.4.0的详细步骤。主要内容包括:1)下载并精简LVGL源码,保留核心文件和目录;2)将LVGL添加到Keil工程,配置头文件路径和源文件;3)修改配置文件(lv_conf.h)和显示接口(lv_port_disp.c);4)实现屏幕驱动,包括初始化、刷新缓冲区和画点API;5)为LVGL提供tick计数和任务处理。文章特别强调了文件结构完整性、关键配置项的修改以及显示驱动的实现方法,为在STM32平台使用LVGUI提供了实用指南。

2025-11-20 15:52:25 694 4

原创 STM32H7+FreeRTOS+LwIP移植EtherCAT开源主站SOEM

摘要:本文介绍了在FreeRTOS系统下移植EtherCAT主站协议栈的关键代码修改,主要包括:1) 在osal.c中实现高精度定时和延时功能,使用TIM17硬件定时器提供微秒级精度;2) 在oshw.c中添加大小端转换宏定义;3) 在nicdrv.h中定义FreeRTOS互斥量操作接口,替换原系统调用。这些修改使协议栈能在FreeRTOS实时操作系统中稳定运行,满足EtherCAT通信的实时性要求。

2025-08-05 14:46:40 1234 1

原创 STM32CubeIDE最新汉化教程

本文介绍了为Eclipse IDE安装中文语言包的详细步骤:1)提供官方中文包软件源地址;2)通过"Help > Install New Software"添加软件源;3)选择简体中文语言包进行安装;4)信任软件源证书;5)完成安装后重启Eclipse;6)最终实现界面中文化。整个过程包含6个关键步骤,并配有操作截图说明,帮助用户快速完成Eclipse的本地化设置。

2025-07-23 13:31:57 1182

原创 FDCAN 经典模式配置

FDCAN配置

2025-02-06 18:10:28 464

原创 CANopen 学习笔记(3)

canopen cia 402 pdo map

2025-01-21 13:13:13 333

原创 CANopen 学习笔记(2)

修改映射参数后执行sendPDOevent(&CanFestival_Master_Data);/* 发送PDO事件 */则会触发PDO传输。还有一直就是定时器异步发送,配置发送类型为0xFE,定时器发送时间为0x64,则会以100ms的周期发送PDO。发送类型设置为0xFE或0xFF。

2025-01-14 11:28:45 462

原创 CANopen 学习笔记(1)

为复位节点通讯(让节点的 CAN 和 CANopen 通讯重新初始化,一般用于总线收到干扰,导致节点总线错误被动,或者总线关闭时)。PDO 通信参数,定义了该设备所使用的 COB-ID、传输类型、定时周期等。为复位节点应用层(让节点的应用恢复初始状态,比如列车门都恢复打开状态);为进入预操作状态(让节点进入预操作状态);为启动命令(让节点进入操作状态);为停止命令(让节点进入停止状态);

2025-01-09 11:00:44 949

原创 STM32 F4xx LL库定时器主从触发

STM32 F4xx LL库定时器主从触发。

2025-01-08 15:56:53 207

原创 CANopen协议

CANopen协议

2025-01-03 17:50:36 2292

原创 FreeRTOS Lwip Netconn APi TCP Server 1对多

FreeRTOS Lwip Netconn APi TCP Server 1对多

2024-12-31 10:50:29 342

原创 FreeRTOS Lwip Socket APi TCP Server 1对多

lwip freertos tcp server 1对多

2024-12-30 13:17:00 567

转载 LwIP 官方 socket api 示例

源文件#include "socket_examples.h"#include "lwip/opt.h"#if LWIP_SOCKET && (LWIP_IPV4 || LWIP_IPV6)#include "lwip/sockets.h"#include "lwip/sys.h"#include <string.h>#include <stdio.h>#ifndef SOCK_TARGET_HOST4#define SOCK_TARGE

2024-12-27 15:30:55 315

原创 C++ STM32 F4xx USART LL库 DMA + IDLE ISR 驱动裸机 +FreeRTOS 任务通知

C++ STM32 F4xx USART LL库 DMA + IDLE 收发 ISR 驱动裸机 +FreeRTOS 任务通知

2024-12-26 18:06:05 402

原创 STM32 F4 定时器 根据频率自动设置定时器ARR 和PSC

硬汉哥的啦,每次找烦的很。

2024-12-25 14:19:44 466

原创 最新Keil V6编译器,完美解决串口重定向打印,卡BKPT的问题(不使用MicroLIB)

最新Keil V6编译器,完美解决串口重定向打印,卡BKPT的问题(不使用MicroLIB)

2024-12-12 16:02:45 739

原创 使用Keil V6编译 FreeRTOS CMSIS V2版本 ETH + Lwip 编译报错问题解决方式

STM32CUBE+KEIL+FREERTOS+LWIP+Compiler V6 使用Keil V6编译 FreeRTOS CMSIS V2版本 ETH + Lwip 编译报错问题最新解决方式

2024-12-12 11:19:43 1774

原创 ST官方 DMA 串口IDLE 收发例程

【代码】ST官方 DMA 串口IDLE 收发例程。

2024-12-03 21:42:23 235

转载 STM32 串口收发 空闲中断、DMA

STM32 串口DMA中断收发

2024-11-28 15:21:24 222

原创 STM32 使用ARM Compiler V6 编译裸机 LWIP协议栈报错的解决方法

stm32 lwip使用keil v6 编译报错的解决办法。

2024-11-27 16:44:17 881

原创 1553B总线控制器 BU64843模式配置

寄存器地址#define INT_SHIELD_REG 0x0000u //中断屏蔽寄存器#define CONFIGURE_REG1 0x0001u //配置寄存器1#define CONFIGURE_REG2 0x0002u //配置寄存器2#define RESET_REG 0x0003u //启动/复位寄存器(写)#define BC_RT_CMDREG

2024-11-19 11:16:31 996

原创 STM8S003F3P6定时器输入捕获和输出比较

STM8S003F3P6定时器输入捕获、输出比较

2024-09-03 13:31:44 815

原创 STM32 HAL库常用功能封装

STM32 HAL库常用功能封装。

2024-08-16 09:26:13 825

原创 简单的二维数组查表插值算法实现

简单的二维数组查表插值算法实现。

2024-08-11 14:23:27 487

原创 STM32 HAL库 定时器编码器模式的使用

当配置定时器为编码器模式时,TIM_CH1、TIM_CH2为编码器脉冲输入;默认使用CH1做基准,判断CH2的下降沿来确定编码器运转方向。当定时器使用编码器模式时,TIM_CH3和TIM_CH4可以用作PWM脉冲输出,但是脉冲的频率取决于编码器输出脉冲的频率。

2024-07-28 17:19:37 1835 3

原创 STM32 裸机 LWIP RAW接口 TCP客户端和服务端,以及UDP收发实现

以下展示两种TCP\UDP通信使用例程。

2024-07-28 17:01:22 3573 2

原创 STM32 TIM定时器从模式控制器

STM32 定时器从模式控制器

2024-07-20 00:58:23 848

原创 STM32 HAL库串口空闲中断 + DMA 收发不定长数据

usart.h64usart.c使能IDLE中断和DMA接收。

2024-05-27 18:26:34 1165 2

原创 Rtthread scons STM32外设 Kconfig文件配置

使用SCONS 生成项目时 STM32外设内核配置选项

2024-04-29 10:35:07 746

canopen node object dictionary editor V4.2.3-9-GD9CA4AA

最新版CANopenNode 开源协议栈 对象字典编辑工具

2025-02-20

ARMV7A 安卓 FFMPEG so库

ffmpeg 7.0 安卓so库

2024-05-12

Linux GRUB2主题

GRUB2 主题包,安装方法配置文件及其详解,适用于ubuntu ,fedora 等以grub2引导的linux

2017-12-01

联想笔记本原厂win8恢复包

使用此包,课恢复笔记本一键还原功能,恢复出厂系统!

2018-12-17

Yaru主题+图标.zip

yaru主题加图标。链接: https://pan.baidu.com/s/1_U0PaVv0tzaFuwXDH7ZSMw 提取码: j22i

2020-01-12

空空如也

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

TA关注的人

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