自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Codinglover

这一步一步踏足的,都是我想去的地方。

  • 博客(82)
  • 收藏
  • 关注

原创 ENNOID-BMS从控板分析-基于LTC6813的版本

简单分析ENNOID-BMS这个开源电池管理系统方案的从控板。

2024-01-13 23:57:24 1165

原创 BMS中的绝缘电阻测量方法

介绍BMS国标中的绝缘测量方法

2023-11-16 17:52:10 1646

原创 Cyclone FPGA踏足笔记(三):逻辑电路复习

电路

2023-05-26 11:13:23 148

原创 CAN总线要点总结(CAN2.0A/B)

工作也有几年了,在项目中也接触过几次CAN总线,但总是止步于会用即可,对于很多细节上的东西有时还是稀里糊涂的状态,这几天正好有点时间,因此整理了这篇文章来对自己的CAN总线知识体系查漏补缺。

2023-05-13 18:42:28 5548 3

原创 Keil C51的Data Overlaying机制导致的函数重入问题

介绍Data Overlaying机制的基本原理并讨论可能导致的函数重入问题

2022-06-25 02:32:56 1332 2

翻译 QT核心机制3:信号与槽

写在前面这篇文章基本是对Qt官方文档某些章节的翻译理解了,翻译这些章节的原因是我认为这些是Qt中最核心的东西,翻译的过程也就是强迫自己认真去读它们的过程,我不会完全一字一句的照搬原文,而是按我自己的理解去翻译其中的重点,毕竟我的目的是理解它们,将它们按自己可以灵活使用的方式组织,而不是机械的把它们从一种语言转变成另一种语言。涉及的官方文档原文内容主要包括以下章节:The Meta-Object System 元对象系统The Property System 属性系统Signals & Sl

2022-05-29 18:16:29 1280 1

翻译 QT核心机制2:属性系统

个人博客原文地址:QT核心机制2:属性系统写在前面这篇文章基本是对Qt官方文档某些章节的翻译理解了,翻译这些章节的原因是我认为这些是Qt中最核心的东西,翻译的过程也就是强迫自己认真去读它们的过程,我不会完全一字一句的照搬原文,而是按我自己的理解去翻译其中的重点,毕竟我的目的是理解它们,将它们按自己可以灵活使用的方式组织,而不是机械的把它们从一种语言转变成另一种语言。涉及的官方文档原文内容主要包括以下章节:The Meta-Object System 元对象系统The Property System

2022-05-29 01:46:15 1515

翻译 QT核心机制1:元系统

写在前面这篇文章基本是对Qt官方文档某些章节的翻译理解了,翻译这些章节的原因是我认为这些是Qt中最核心的东西,翻译的过程也就是强迫自己认真去读它们的过程,我不会完全一字一句的照搬原文,而是按我自己的理解去翻译其中的重点,毕竟我的目的是理解它们,将它们按自己可以灵活使用的方式组织,而不是机械的把它们从一种语言转变成另一种语言。涉及的官方文档原文内容主要包括以下章节:The Meta-Object System 元对象系统The Property System 属性系统Signals & Sl

2022-05-27 22:21:41 1823

原创 嵌入式linux入门3-7proc文件系统

个人博客对应地址:嵌入式linux入门3-7proc文件系统概述proc - process information pseudo-filesystem(进程信息虚拟文件系统)proc文件系统是一个用于提供内核数据结构接口的虚拟文件系统。通常其挂载于/proc目录下。一般系统会自动挂载此文件系统,当然也可以使用如下命令进行手动挂载:mount -t proc proc /proc # 可以看到proc文件系统的类型也为proc大部分此文件系统中的文件是只读的,不过也有一些可写文件,修改这些文件可

2022-05-05 22:49:31 643

原创 嵌入式linux入门3-5-I2C

个人博客对应地址:嵌入式linux入门3-5-I2CI2C协议与SMBus协议由于我自己对I2C协议还算熟悉,笔记里就不涉及I2C协议本身的讲解了,这里提供两篇博客用于了解I2C以及SMBus协议:Understanding the I2C BusSMBus Quick Start Guidei2c-tools使用i2c-tools可以方便的对I2C设备进行调试,参考以下博客获取使用方法,特别简单:Using the Linux I2C-Tools Software但是光看上面那篇博客还不够

2022-04-19 01:18:43 480

原创 嵌入式linux入门3-4-线程

个人博客对应地址:嵌入式linux入门3-4-线程线程下表将线程与进程进行简单对比:线程进程操作系统调度的最小单位操作系统分配资源的最小单位直接共享全局变量等资源通过线程间通讯手段进行通讯一个应用程序可以创建多个线程一份程序只对应一个线程,但是线程内可以创建另一个线程(新的程序副本)使用pthread_create创建使用fork创建线程特性相比进程的优点:更加简单高效的线程间同步与通讯(直接访问全局变量来通讯,通过锁同步;而进程间的同步和通讯

2022-04-07 23:55:11 565 1

原创 嵌入式linux入门3-3-套接字

个人博客对应地址:嵌入式linux入门3-3-套接字socket主要函数创建套接字socket,我们一般翻译为套接字,其是一种通讯接口,允许位于不同计算机之间的线程通过网络进行通讯,我们可以使用socket系统调用来创建一个socket接口,此函数会返回一个定位此接口的文件描述符。/** * 创建一个socket接口,并返回它的描述符,返回-1表示失败 * * domain参数用于指定接口使用的通讯域(communication domain),其支持AF_xxx形式的一组宏定义, * 对

2022-04-03 16:11:32 3551 1

原创 嵌入式linux入门3-2-串口

个人博客上本篇文章地址:嵌入式linux入门3-2-串口tty体系tty是teletype的缩写,在上世纪计算机还很昂贵的时候,多人可以通过这种终端来连接并共用一台计算机,发展到今日,tty已经成为了字符类设备的统称,这类设备包括:控制台、UART等物理串行接口以及伪终端。也就是说,开发板物理串口一般对应linux中/dev目录下的tty*设备文件,访问这些文件,就访问硬件串口了。tips:以下内容为阅读 Serial Programming Guide for POSIX Operating Sy

2022-03-29 18:01:23 3636 1

原创 嵌入式linux入门4-1-荔枝派nano使用TF卡运行linux

个人网站文章对应网址:https://codinglover.top/2022/03/25/嵌入式linux入门4-1-荔枝派nano使用tf卡运行linux/以下内容只是我自己所需要部分的笔记,参考荔枝派的官方文档获取最详细的内容:http://nano.lichee.pro/get_started/first_eat.html[简易]使用一键脚本构建系统到TF卡去如下位置下载Lichee Nano文件夹的所有内容:https://pan.baidu.com/s/1smzuGS9进入Lic

2022-03-25 23:19:05 3230 3

原创 嵌入式linux入门3-文件IO

访问个人博客也许可以获得无广告体验与更好的文章排版:codinglover.top/2022/03/20/嵌入式linux入门3-文件io/文件描述符每个打开的Linux文件都有一个对应的文件描述符,文件描述符为一个非负整数。我们可以通过调用open()函数获取文件描述符。当shell开启一个进程时,此进程默认会继承三个文件描述符,称之为标准文件描述符,如下所示:文件描述符用途POSIX名称stdio流0标准输入STDIN_FILENOstdin1标准输出ST

2022-03-20 23:32:16 606

原创 嵌入式linux入门2-gcc与makefile的常用语法

访问个人博客也许可以获得无广告体验与更好的文章排版:https://codinglover.top/2022/03/18/嵌入式linux入门2-gcc与makefile的常用语法/GCC编译器编译流程GCC在编译一份工程时分为 预处理、编译、汇编、链接 四步,当然日常中常用编译统称这四步,对应使用的GCC指令如下所示:常用编译选项-E 只进行预处理步骤,输出预处理后的源码到标准输出,可以通过 > 重定向到文件,使用 “-E -dM” 的选项组合可以打印出文件中用到的所有宏定义以及它们所

2022-03-18 10:56:27 740

原创 嵌入式linux入门1-指令使用总结笔记

欢迎同时访问个人博客上的对应文章:嵌入式linux入门1-指令使用总结笔记Linux常用命令目录操作pwd # print working directorycd # change directorycd /home/water/ # change to directory direction /home/water/cd ~ # change to home directory of current usercd . # change to current directorycd ..

2022-03-11 22:43:40 1582

原创 stm32串口IAP例程解析

访问个人博客也许可以获得无广告体验与更好的文章排版: https://codinglover.top/2022/03/07/stm32串口iap例程解析/例程获取可以通过访问官方网站www.st.com获取示例代码和应用笔记示例代码:x-cube-iap-usart应用笔记:an4657同时本文涉及的所有资料可以从此下载:链接:https://pan.baidu.com/s/19nKPc_oOyRZCTfaNKTNHbw提取码:q0ge工程文件结构主要就两个文件夹:Drivers和Proj

2022-03-07 23:37:29 2526 5

原创 LwIP应用笔记(三):在RTOS环境下运行LwIP协议栈

前言这篇文章是 LwIP应用笔记(二):无操作系统支持下的RAW API移植 的后续,以下所有内容都是建立在已经完成RAW API移植的前提下。本文可能不会太纠结于代码细节,因为本文的目标并不是演示移植过程中每一行代码该怎么写,而是希望在讲清大体框架的基础上,给出移植的主要流程,即在移植过程中,我们需要做什么事。一、RTOS环境下的运行优势与劣势在非RTOS环境下,用户程序是通过回调类接口,也就是RAW API与LwIP协议栈进行交互的。用户通过注册回调函数的方式告诉协议栈,当某些事件发生时需要做什么

2021-08-29 22:50:30 2523 4

原创 LwIP应用笔记(二):无操作系统支持下的RAW API移植

写在前面一、网络接口与网络数据包二、底层收发流程与以太网接口移植模板三、工程文件添加四、配置LwIP五、完善底层以太网收发接口六、LwIP时钟安装七、初始化LwIP八、移植验证

2021-07-19 00:31:57 2865 9

原创 LwIP应用笔记(一):LwIP移植的一些预备知识

欢迎来我的个人博客转转:https://www.codinglover.top前言从2021年3月到6月,我利用工作之余的一些零碎时间看了看《嵌入式网络那些事》这本介绍LwIP协议的书,现在这本书也基本上看的差不多了,于是开了这个专栏,打算用几篇文章来大概总结一下收获,同时加深自己的认识。总体来说,打算花一个月的时间更新五篇文章:第一篇文章,也就是这篇,打算大概谈谈TCP/IP协议的一些基础知识,同时总结一下LwIP的代码结构,聊聊LwIP的初始化过程以及LwIP是如何与底层的网卡交互的,这些其实

2021-06-26 00:29:32 1475 1

翻译 【翻译】理解I2C总线

这是对德州仪器的应用文档SLVA704的中文翻译,原文标题为:Understanding the I2C Bus。相比于飞利浦出品的几十页的I2C标准文档,此文档只有8页,但是对于想要了解标准I2C总线并应用的人来说,这个已经够用了。

2021-06-07 23:55:24 601 1

原创 Cyclone FPGA踏足笔记(二):Verilog语法学习总结

前言花了一个月时间零零碎碎看了下Verilog的语法,终于把Verilog的基本语法学了个大概,可以自己写点小东西了,由于笔者自己都没学完,所以这篇文章肯定不是一篇介绍Verilog语法的方方面面的教程文章(我也没那能耐),而是侧重于写自己学习过程中的一些理念和一些个人认为在学习时必须掌握的一些语法要点。资料推荐这里谈一下一些笔者自己学习过程中参考过的资料。首先是《你好FPGA:一本可以听的入门书》这本书,这是一本入门的书,目前笔者自己是看到了第六章,正好把第六章看完。个人感觉这本书讲的是有点浅的,而

2021-04-09 13:16:31 829 1

原创 Cyclone FPGA踏足笔记(一):开发环境建立与使用

这确实是一个目录前言一、环境搭建与配置前言好久没回CSDN了,记得这个博客开通是大二时候的事了,一晃都6年了。个人搭建博客是一件很有意思但是需要花费精力的事,我毕竟不是搞web的,我想还是将更多时间用来写博客吧。旧网站会一直开着直到服务器过期,部分值得搬迁的文章到时专门开个专栏搬迁过来好了。这篇文章是一系列FPGA学习笔记的开端。之所以打算记录下来,一是写的过程中顺带自己理理学习思路,二是希望能对以后同样需要涉足FPGA的新手有一些帮助吧。站在新手的角度去看另一个新手学习过程中记录的笔记,可能很多地方

2021-03-04 21:59:08 2370

原创 【翻译】RFC1350-TFTP通讯协议

此份文档为RFC1350的翻译,由于翻译此份文档的初衷是笔者希望实现一个TFTP服务器用来作为UDP协议学习中的练手项目,因此笔者在翻译时省略了原文档开头与协议本身无关的一些声明类章节。TFTP是一个非常简单易用的文件传输协议,如果希望在单片机上实现一个简单的通过网口或者串口更新用户程序的bootloader,此协议应该十分适合用于传输升级用的hex/bin文件。 1.协议用...

2021-01-19 01:15:57 979

原创 别了,2020年

这份2020年的年终总结本来应该是另一个版本,可是前几天我把它们删了,写了这一份。可能我觉得前一份实在是太不像一份年终总结了,在那份版本里有了太多个人的感悟,看起来浮在云端一点都不真实,虽然看起来那些总结很有以后回顾的价值,可是唯独少了生活的气息,所以这次重写,我想多写点生活的事。 从公历上来说,一年的开头总是元旦,可是传统上很多人却更喜欢将春节作为一年的开始,虽然很多时候,...

2021-01-10 20:10:45 107

原创 对lwIP1.4.1的sys_arch.txt文件的翻译

lwIP,A Lightweight TCP/IP stack,是对TCP/IP协议栈的轻量级实现,主要用于资源紧张的嵌入式环境下,在尽量减少资源占用的前提下实现了TCP/IP协议栈的主要协议。sys_arch.txt是lwIP的系统仿真层说明文档,一般在移植lwIP时需要参考此文件的内容,笔者在查阅lwIP的相关书籍时,为了加深理解,尝试翻译了一下此文档。由于笔者查阅的书本附赠的lw...

2020-11-25 21:06:30 343

原创 使用VSCode编译调试IAR的stm32工程

相对于IAR和Keil上世纪水平的代码编辑器,巨硬出品的VSCode简直就是太香了,可惜毕竟不是专门为嵌入式开发设计的,不一翻折腾也就只能当当代码编辑器用,要编译调试软件还是得打开IAR,每次写stm32还得在两个软件直接来回切换,多少有点麻烦,于是这几天花点时间好好研究了下VSCode的各种插件,总算可以只依靠VSCode实现编写+编译+调试的一条龙服务了,我觉得有必要写这篇文章整理一...

2020-11-19 22:17:09 8997 3

原创 仲秋登岱

这篇游记其实是预谋已久的了,决定国庆节要去登泰山是什么时候的事呢,大概是9月初吧,至于当初产生这个念头的原因,我现在已经记忆不清了。现在,坐在下山后回武汉的动车上,趁着上班前的最后一小段空闲时间,我终于可以开始敲动起键盘来写这篇游记了。第一次知道泰山是小学时候的事了吧,当时课本上有一篇冯骥才的文章《挑山工》,写的是泰山上负责担运货物的民工。当然这都是很久之前的事了,想想我小学入...

2020-10-29 00:18:49 175

原创 【翻译】带CRC校验的XModem协议

导论Xmodem协议是一种很久之前就被提出的协议,其作为一种简单的工具,使得两台电脑可以相互通讯。由于其具有的半双工、128字节长度包数据(译者注:对于包数据长度不足128字节的情况,使用0x1A填充到128字节,一般发生于传输的最后一个数据包)、ACK/NACK应答以及CRC校验这些机制,在很多应用场合中都能见到Xmodem协议的身影。实际上,现在个人计算机上的大多数通信包都...

2020-06-09 22:36:33 1109

原创 【翻译】OSI模型:网络通讯中的7个层次

此为笔者自己尝试翻译《Osi Model : 7 Layer Of The Network Communication》的译文,原文地址:https://networkel.com/osi-model-7-layer-network-communication/OSI(Open Systems Interconnection,开放系统互连)模型最初由ISO( Inter...

2020-04-01 13:22:40 1767

原创 UML类图基本图示法

这篇文章其实是一篇笔者用于整理UML类图基本知识的阅读笔记,本文的内容在《大话设计模式》的1.11章节可以找到,笔者按照自己的理解进行了组织提炼,方便自己以后查阅。当然这些只是基础中的基础,如果希望对所有UML图有更多了解,推荐访问此站点(前方英文网站预警):点我访问uml-diagrams一、概述UML类图是在面向对象的程序设计中,用来直观描述类与类之间、类与接口之间的...

2020-03-20 22:09:23 607

原创 预防Bug的十大编码规则

本文是笔者在阅读周立功的《软件单元测试入门与实践》一书时的内容摘抄,我一直相信,写代码这件事,要想把它做好,光掌握语言本身是不够的,应该从工程的角度去看待写代码这件事,除了实现代码功能,还要注重代码的健壮性、可读性、可扩展性、可维护性。除了自己阅读各种规范,保持编写代码时的良好习惯外,借助外在辅助工具可以帮助我们更好地写出高质量的代码,这也是我阅读这本书的初衷。以下是对于书中内容的摘抄。...

2020-03-02 16:46:26 210

原创 S3C2440上电启动流程概述

一、S3C2440的启动方式1、启动介质S3C2440在上电时会通过判断OM0和OM1的信号组合来决定指令开始执行的位置(即引导ROM的位置),同时这两个信号也用于决定BANK0(nGCS0)的总线宽度。 OM0和OM1的信号值可以由对应的两个外部引脚(引脚名称:T15和R13)的电平状态决定。不同的启动模式从上图可以看出,当MO[1:0]=00时,S3C...

2020-02-06 23:44:54 426

原创 《GUN Make》文档粗读笔记

前言在嵌入式工程的编译中,make经常与gcc配合使用,用于对工程进行编译。当然,这只是一份GUN Make文档的阅读笔记,我并不打算在这篇笔记中说太多与文档阅读本身无关的东西,因为我懒。一来我接触Make工具没多久,并没有把握说清楚它的由来,二来我不想浪费太多口舌在与笔记本身无关的事情上。对于Make和makefile完全没有概念的你如果看到的这篇文章,建议先去阅读知乎上一位大...

2020-01-05 17:50:51 206 1

原创 给未来的2019年终总结

一、没有也没关系的序我觉得现在是时候开始写这篇年终总结了,那么就从现在开始动笔吧。其实在几个月前这个想法已经在我的脑海中了,但是我一直纠结什么时候开始写。现在,在2019年12月22日,这个离2019年结束不足10天的日子里,我终于觉得是时候开始了。2019年是变化很大的一年,所以我也想换种方式来写这篇博客。这毕竟是充满个人情感的总结而不是行文需要到处显露出理性的技术讨论...

2019-12-27 00:20:19 118

原创 ARM-LINUX-GCC交叉编译工具链必知必会

一、一些需要知道的概念在正式谈论交叉编译工具ARM-LINUX-GCC前,我想有必要明确两个非常基本的概念。1、什么是交叉编译,什么是交叉编译工具链:https://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html#what_is_crosscompile,只需要关...

2019-12-07 01:06:35 1676

原创 [翻译]嵌入式系统-寄存器组/栈

一、蹩脚的译者的话笔者最近在读用于51单片机的实时操作系统RTX51-Tiny的用户文档《RTX51 Tiny User’s Guide》时,见文档内多次提到了 “register bank”这个字眼,想了想应该就是刚学51时接触的寄存器组了。以下引用说明了寄存器组的主要用处: 通常的用法是,0组寄存器(PSW中RS0/RS1 = 0),用于程序。其它三组寄存器可用于中断...

2019-11-18 21:12:42 485

原创 基于samba的远程目录共享服务搭建简易指南

一、为什么我需要samba笔者最近在玩S3C2440,这块芯片呢,需要使用linux环境下的arm-linux-gcc进行程序编译。然后呢,笔者的主力笔记本跑的是windows,便携本渣渣的性能又不允许跑虚拟机,所以笔者额外搭建了一个实体linux编译服务器。于是每次笔者的开发流程是这样的:使用VSCode编辑工程代码-》打开MobaXtern使用SSH登陆编译服务器-》使用sf...

2019-11-05 21:16:56 1503 4

原创 S3C2440A时钟结构分析(ARM9架构)

一、时钟树分析S3C2440A时钟树从上图的左上角我们可以得知,S3C2440A支持两种外部时钟源输入,一种是通过接在XTIpll与XTOpll上的外部振荡电路(一般由晶振为核心组成),还有一种是通过将现成的时钟频率通过EXTCLK输入。时钟输入芯片后,送到MPLL(主锁相环)与UPLL(USB锁相环)进行倍频。MPLL出来的时钟信号称之为FCLK,一般直接用于...

2019-09-23 20:30:29 265

空空如也

空空如也

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

TA关注的人

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