自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 一个严谨的STM32串口DMA发送&接收(1.5Mbps波特率)机制

本文描述串口DMA收/发机制设计,及STM32串口DMA收/发实现。

2020-09-03 23:54:58 2972 10

原创 一个NB-IoT/4G模组的AT拨号联网流程

在各类物联网应用中,NB或者4G网络是常见的通信介质,其最大的优势是可以借助现有的移动基站,无需额外建立基站,所以广泛应用在三表(水表、电能表、天然气表)无线抄表中。通常情况下,对于这类小流量的数据,是通过串口(UART)与NB或者4G模组通信,以AT指令的方式进行数据交互和命令控制。

2020-03-21 00:28:03 1623 0

原创 一个适用各类场合的Makefile模板

1.写在前面   对于Windows下开发,很多IDE都集成了编译器,如Visual Studio,提供了“一键编译”,编码完成后只需一个操作即可完成编译、链接、生成目标文件。Linux开发与Windows不同,Linux下一般用的的gcc/g++编译器,如果是开发ARM下的Linux程序,还...

2019-05-29 23:57:25 2083 0

原创 【组件】onewire(单总线)抽象

1.前言   onewire(单总线)是DALLAS公司推出的外围串行扩展总线技术总线,顾名思义,它是采用一根信号线进行通信,即传输时钟信号又传输数据,而且能够进行双向通信,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。常用到单总线的器件,一般是稳定传感器、EEPR...

2018-07-22 15:04:11 6256 0

原创 【组件】spi抽象/硬件spi

1.写在前面 spi(Serial Peripheral Interface)即串行外设接口。与i2c一样,spi也常用外设设备通信的总线,从事嵌入式开发必不可少的掌握。根据本人以往的经历,对spi进行总结(主要是MCU范畴,Linux已有成熟的驱动设备),主要目的及实现: a)spi总线与s...

2018-01-07 23:09:16 9410 4

原创 【组件】通用环形缓冲区模块

写在前面 环形缓冲区是嵌入式应用(医疗电子、消费电子、工控)中常用的数据结构模型,如音视频流、通信总线数据收发等。一些操作系统、第三方库都提供现成的环形缓冲区接口API,性能和安全性都有保障,多线程访问互斥机制,空内存访问保护等。 1.基本原则 先进先出(FIFO),重复使用。 2.实现原...

2017-12-26 15:23:53 1644 0

原创 【组件】i2c抽象/模拟i2c

1.写在前面 i2c总线是由PHILIPS公司开发的一种简单、双向二线制同步串行总线。关于i2c的使用,并不陌生,C51、ARM、MSP430等,都基本集成硬件i2c,或者不集成i2c的,可以根据总线时序图使用普通IO口翻转模拟一根i2c总线。对于当下流行的stm32饱受诟病的硬件i2c,相信很...

2017-12-23 09:27:26 10784 1

原创 C/C++解析tar文件

tar文件是将多个文件打包,以512字节块存储,并在每个文件前增加一个文件头描述信息。通过tar文件的存储格式,使用C/C++解析tar文件。

2020-11-22 00:00:03 69 0

原创 设计模式回顾——原型模式(C++)

原型模式(Prototype Pattern),是一种创建型设计模式,指的是以原型实例指定待创建对象的种类,并通过拷贝(克隆)原型对象来创建新的对象。

2020-11-11 18:14:13 60 0

原创 基于STM32标准库移植RT-Thread Nano

本文描述基于STM32F1标准库移植RT-Thread Nano。

2020-11-05 23:59:16 831 0

原创 RK3399—Ubuntu16.04设置静态IP

本文描述RK3399平台 Ubuntu16.04设置静态IP方法。

2020-10-31 23:59:40 77 2

原创 设计模式回顾——观察者模式(C++)

观察者模式(Observer Pattern),指的是定义一种“一对多”的依赖关系,使得多个观察者对象同时监听某一主题对象,在主题对象的状态发生变化时,通知所有依赖该对象的观察者。

2020-10-29 17:49:11 102 0

原创 设计模式回顾——模板模式(C++)

模板模式(Template Pattern),指的是定义一个抽象(算法)模板结构父类,具体实现方法由子类实现。模板模式是行为型设计模式中使用较为广泛的设计模式。

2020-10-24 18:22:53 1222 1

原创 使用memtester工具对嵌入式Linux内存压力测试

memtester是一款比较经典而且使用广泛的内存检测工具,具备使用简单、易于移植、检测结果可靠性好的特点。

2020-10-21 00:06:21 612 3

原创 设计模式回顾——策略模式(C++)

策略模式(Strategy Pattern),指的是定义一系列算法,并将这些算法封装到具有公共接口的一系列策略类中,使得它们可以动态自由切换。

2020-10-17 00:31:39 115 0

原创 设计模式回顾——适配器模式(C++)

适配器(Adapter )模式, 就是将一个类的接口转换成客户期望的另外一个接口,使得原本由于接口不兼容导致不能一起工作的类可以一起工作。

2020-10-14 15:38:19 2208 7

原创 RT-Thread——国产RTOS标杆

大概是2014年9月,接过主管交接的项目,项目以STM32F103ZET6硬件平台,而运行的实时系统(RTOS)正是RT-Thread(RTT)。也是从此时开始接触到RTT,国人自己写的开源系统,从此对其也是“爱不释手”,在往后的工作中,一直在使用,特别是在后来换了份工作,在新东家里用RTT开发了...

2020-10-11 20:47:11 19885 8

原创 设计模式回顾——建造者模式(C++)

建造者模式是将一个复杂化对象的构造过程与其产品对象本身解耦,使得同样的构建过程可以创建不同的产品。

2020-09-30 17:27:46 109 0

原创 设计模式回顾——工厂模式(C++)

工厂模式,指的是封装对象的创建过程,并将创建过程和操作过程分离,提高程序的可维护性和扩展性。工厂模式又分为,简单工厂、工厂方法 、抽象工厂 。

2020-09-28 23:56:57 619 1

原创 设计模式回顾——单例模式(C++)

单例模式,指的是一个类只有一个实例对象,类只提供一个访问实例对象的全局访接口。

2020-09-27 23:52:32 354 0

原创 设计模式回顾——设计模式概念与基本原则

设计模式(Design pattern),是一套被反复使用、多数人知晓的、经过分类编目的、反复验证的代码设计经验总结。

2020-09-26 00:25:36 151 0

原创 【代码质量】C/C++代码静态分析与常用分析软件工具

程序静态分析(Program static analysis)是指在不执行代码情况下, 通过词法分析、语法分析、语义分析、控制流、数据流分析等技术对源代码进行扫描。

2020-09-16 23:46:56 360 0

原创 【Linux应用编程】Linux编程中常见错误码含义及查询方式

本文描述linux程序开发中返回的错误码具体含义和查询方式。

2020-09-09 00:16:46 332 0

原创 数据结构回顾——几类线性表对比与总结

顺序表、单链表、双向链表、循环链表、静态链表等几类线性表,各自具有固有的特点、优缺点,决定其适用于不同的应用场景。

2020-08-27 20:30:23 131 0

原创 数据结构回顾——静态链表操作详解及C语言实现

使用静态数组表示的链表称为静态链表。静态链表综合了顺序表和链表的优点,既有高效的查找操作,又能快速增删元素节点。

2020-08-26 00:18:03 647 0

原创 数据结构回顾——循环链表操作详解及C语言实现

循环链表指的是一个链式表以一个环状的形式存在,即是链表头尾节点相连在一起。循环链表从任意节点开始,可以遍历整个链表,遍历灵活性高。

2020-08-21 21:17:14 119 0

原创 数据结构回顾——双向链表操作详解及C语言实现

双向链表属于链表的一种,支持双向遍历节点,效率比单链表高。

2020-08-19 00:26:54 104 0

原创 数据结构回顾——单链表操作详解及C语言实现

本文描述另一线性表【单链表】的插入、删除、查找操作及C语言实现。

2020-08-17 16:45:58 121 0

原创 数据结构回顾——顺序表操作详解及C语言实现

本文描述顺序表插入、删除、查找操作以及C语言的实现。

2020-08-15 23:53:47 115 0

原创 数据结构回顾——线性表概念(顺序表与链表的区别)

具有相同特性的数据元素组成的有限序列 称为线性表。线性表是最基本、最简单、使用最广的一种数据结构。

2020-08-14 23:57:29 123 0

原创 【Linux应用编程】framebuffer设备应用编程实例

帧缓冲设备(framebuffer device)是linux系统抽针对显示设备抽象出来的一个字符设备,向上为用户层提供统一的访问接口,向下屏蔽底层各类硬件显示设备的差异。

2020-08-09 00:29:07 233 1

原创 Linux系统“/dev/mem”设备使用详解(Hi3520D)
原力计划

“/dev/mem”是linux系统中内核所有物理地址空间全映像的一个虚拟字符设备,与mmap结合使用,用户态可以直接访问内核态物理地址空间。

2020-08-01 17:17:01 189 0

原创 嵌入式Linux下获取CPU温度方法

本文描述嵌入式linux下获取cpu温度的方法。

2020-07-31 00:21:23 561 0

原创 【Linux应用编程】基于UNIX域套接字的进程间通信
原力计划

用于本地进程间通信的套接字称为unix域套接字(unix domain socket)

2020-07-23 23:52:49 240 0

原创 【Linux驱动编程】向驱动传递参数
原力计划

linux内核提供驱动传参机制,编写驱动程序时实现传参接口,用户在加载驱动时传入指定参数,使得一个驱动程序更加灵活,向上可以适配复杂应用程序,向下兼容不同硬件设备。

2020-07-17 23:59:03 746 0

原创 【Tools】Linux串口设备调试技巧(sftty)

串口设备是linux系统中最基本的设备之一,在嵌入式linux开发中几乎是必不可少的。由于串口使用简单、广泛,除了使用一路串口作为调试终端输出外,还会使用串口作为外部设备的连接总线。

2020-07-14 23:55:14 1387 0

原创 【Linux网络编程】ioctl函数在网络编程中的应用(C语言实现一个ifconfig)
原力计划

linux系统用户态与内核态(包括设备、驱动)进行非数据流的相关控制信息交互,一般是通过ioctl函数实现。相同的,用户态与网络设备相关的控制信息也是通过ioctl实现。实质上,ifconfig、route底层最终是通过调用ioctl函数实现其功能的

2020-07-09 23:50:19 224 0

原创 RK3399—板端挂载NFS
原力计划

本文章描述firefly rk3399板端挂载nfs。

2020-07-05 22:22:02 328 0

原创 【音视频】V4L2摄像头应用编程
原力计划

V4L2全称是Video for Linux two(Video4Linux2),是V4L2改进衍生版本。V4L2是linux操作系统下的一个标注化的音频、视频设备驱动框架,向下屏蔽底层设备的差异,向上提供标准统一的访问接口,提高用户在音视频方面的应用开发效率。

2020-07-01 18:06:14 240 0

转载 C/C++log日志库比较

事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好的轮子,但没办法通过配置改变日志的格式或者输出文件。syslog是个系统级别的轮子,不过速度慢,而且功能比较单调。

2020-06-18 00:24:09 218 0

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