- 博客(231)
- 收藏
- 关注

原创 源码翻译篇
mybatis-spring 源码翻译:https://github.com/renxinlin/mybatis-spring[全文翻译]tomcat源码翻译:https://github.com/renxinlin/tomcat【翻译启动流程以及请求流程】mybatis源码翻译:进行中spring源码翻译:进行中在翻译源码前,笔者有一段非常痛苦的学习经历去...
2020-02-03 16:15:18
1338
原创 stm32配置基本定时功能
当auto-reload preload参数被使能时,定时器计数器达到自动重载值时,计数器值不会立即更新,而是等待下一次更新事件发生时才会更新。当auto-reload preload参数被禁用时,定时器计数器达到自动重载值时,计数器值会立即更新。这样可以确保定时器计数器始终处于最新状态,但可能会在计数器值被更新时产生不必要的中断或事件。在STM32中,定时器的自动重载预装载(auto-reload preload)参数是指定时器计数器达到自动重载值时是否立即更新计数器值。
2023-06-24 14:13:58
2423
原创 飞控记录之pcb板上电后快速发热的修复经历
内部短路,第一反应是焊接排针时没处理好,烧断了附近电路,因为发热刚好在排针附近,而该附近的排针在焊接时,我出现了一些失误操作,导致高温焊接。1 使用万用表发现是GND与VCC电路短路[头大],到处都是vcc于gnd。由于方案一的物理不可行性,遂开始使用万用表检测短路位置,尝试排查。2 于是开始在热焊卸掉与VCC与GND相关的电子元件,逐步检测。焊接后,上电准备烧写飞控算法时发现,板子快速发热。3 定位到了一块0603电容的锡膏过多,引脚相连。准备用新的pcb板子将当前的电子元件都移植过去。
2023-06-14 22:54:17
611
原创 mpu6050六轴陀螺仪dmp姿态解算-C语言移植(stm32+hal)
4 修改 inv_mpu_motion_driver.c。2 修改inv_mpu.h中结构体。3 修改inv_mpu.c。5 keil中增加宏定义。1 移植官方6个库文件。
2023-05-13 17:43:37
2648
1
原创 stm32串口中断流程
什么是系统调用?曾经我一度不是特别理解,所谓系统调用的本质就是一种中断处理机制,抛开用户态内核态,应用程序或者操作系统不谈,系统调用指的是触发特定的命令就能触发特定的中断,而底层开发提前封装好这些命令与中断函数后,将其录入cpu/mcu中,那么上层应用同学就可以通过svc命令从而调用这些中断函数,从而保障了隔离,安全等特点。
2023-04-26 01:38:32
516
原创 mac电脑-win10虚拟机中安装stlink驱动
基于macbook pro的win10虚拟机安装stlink驱动,以支撑测调soc程序。
2023-04-22 14:43:42
1432
13
原创 无人机软件篇001-spi通信选型
依据spi的时序,总线协议,通过模拟spi时序进行重软件控制,不依赖spi硬件资源,但占用核心,执行时可能受到中断等影响,且速率较硬件spi大幅下降。指片选引脚为spi自带片选引脚,通过硬件寄存器控制。指片选引脚为通用GPIO,通过推挽模式控制。源码参考cubeMx。源码参考cubeMx。
2023-04-11 02:30:31
281
原创 Prometheus系列第十一篇一核心之micrometer源码分析一micrometer-core核心实现一tomcat度量采集
Prometheus系列第十一篇一核心之micrometer源码分析一micrometer-core核心实现一tomcat度量采集
2022-09-18 23:12:30
930
原创 Prometheus系列第十篇一核心之micrometer源码分析一micrometer-registry-prometheus核心实现
Prometheus系列第十篇一核心之micrometer源码分析PrometheusMeterRegistry
2022-09-18 22:42:24
2731
原创 Prometheus系列第八篇一核心一ClientLib源码分析-TextFormat协议输出
Prometheus系列第八篇一核心一ClientLib源码分析-TextFormat协议输出
2022-09-18 14:47:47
982
原创 Prometheus系列第七篇一核心一ClientLib源码分析-Collector系列
Prometheus系列第七篇一核心一ClientLib源码分析-Collector系列
2022-09-18 03:11:03
718
原创 Prometheus系列第六篇一核心一ClientLib源码分析-CollectorRegistry
Prometheus系列第六篇一核心一ClientLib源码分析-CollectorRegistry
2022-09-18 02:45:49
926
原创 基于build.gradle文件整合mapstruct到kotlin工程
文章目录说明配置使用一纯kotlin使用二一混编java说明gradle构建文件名称build.gradle [注意非build.gradle.kts]默认没有引入kapt工具则mapstruct无法使用当然你可以在kotlin中混用Java,此时基于Java撰写的dto转换类依旧可以工作配置plugins { 引入kapt插件 id("org.jetbrains.kotlin.kapt") version("1.6.21")}ext { mapst
2022-05-18 15:37:07
982
原创 netty4核心源码分析第八篇一核心篇服务端fireChannelRead责任链
文章目录pipeline.fireChannelRead原理图源码分析一ChannelPipeline.fireChannelRead源码分析一SimpleChannelInboundHandler调用链路与线程原理图总结pipeline.fireChannelRead原理图源码分析一ChannelPipeline.fireChannelRead调用invokeChannelRead,传入headContext指定线程public final ChannelPipeline fireCha
2022-04-01 17:34:08
2355
原创 netty4核心源码分析第七篇一核心篇服务端NioByteUnsafe处理read事件
文章目录NioByteUnsafe.read读事件处理原理图源码分析一NioByteUnsafe.read二级目录三级目录NioByteUnsafe.read读事件处理原理图源码分析一NioByteUnsafe.read自旋不超过16次读取消息通过allocHandle和allocator分配自适应大小的缓冲区[缓冲区大小的调整在当前read事件处理完成后,自旋过程中不会调整]doReadBytes完成socket数据拷贝至堆外内存fireChannelRead触发netty事件处理本次
2022-03-27 21:05:25
1046
原创 netty4核心源码分析第六篇一核心篇服务端ServerBootstrapAcceptor处理ACCEPT事件
文章目录ServerBootstrapAcceptor二级目录三级目录ServerBootstrapAcceptor二级目录三级目录
2022-03-25 03:09:46
912
原创 netty4核心源码分析第五篇一核心篇NioEventLoop.run详解
文章目录总原理图selectNow原理图可唤醒select原理图process原理图总原理图selectNow原理图可唤醒select原理图process原理图
2022-03-24 02:41:30
879
原创 netty4核心源码分析第四篇一NioEventLoopGroup创建详解
文章目录源码分析一构造函数源码分析一构造函数二原理图MultithreadEventExecutorGroup构造函数源码分析一newChild源码分析一构造函数线程数=2*coreSelectorProvider.provider底层通过DefaultSelectorProvider.create创建KQueueSelectorProvider对象public NioEventLoopGroup() { 传0表示采用默认配置,2*core this(0);}public
2022-03-21 20:10:44
867
原创 netty4核心源码分析第三篇一netty模板代码及常见配置
文章目录模板代码eventLoop创建原理图Bootstrap绑定原理图配置总结模板代码创建线程组创建引导类ServerBootstrap一系列配置[包括option和childOption],[childHandler]通过ServerBootstrap执行bind启动netty服务核心代码作用EventLoopGroup workerGroup = new NioEventLoopGroup()创建多个reactor线程ServerBootstrap.bind
2022-03-21 19:26:09
755
原创 netty4核心源码分析第二篇一netty源码架构
文章目录源码模块netty类设计总结不同的netty版本代码量差距很大,4.1.8版本代码量达到快50万,所以推荐大家阅读4.0版本,但高版本与低版本核心的一些细节实现又各有特点源码模块transport 核心项目: tcp传输上层api的统一封装[包含nio,bio]codec: 核心项目[但非本系列重点,对协议有兴趣可以关注]buffer: 核心项目[本系列文章重点关注]handler: io事件处理的下游流机制设计实现transport-native-epoll: transpor
2022-03-18 01:54:49
765
原创 netty4核心源码分析第一篇一前置篇
这里写目录标题epoll模型实现水平触发[LT]与边缘触发[ET]reactor线程模型单线程模型多线程模型主从线程模型reactor在netty配置双eventLoopGroup的思考NIO编程实战总结epoll模型实现调用epoll_create()建立一个epoll对象(在epoll文件系统中为这个句柄对象分配资源)调用epoll_ctl向event_epoll对象的红黑树添加相关节点,并指明对哪些事件感兴趣[比如netty层面的accept事件,读写事件等]红黑树中的每个节点会与网卡建立回
2022-03-17 01:22:18
696
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人