自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大燕国平民

Stay Hungry, Stay Foolish.

  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

原创 配置内核CGROUP进行CPU资源管理,以及管理服务程序设计

1 CGROUPS1.1. CGROUPS介绍Linux CGroups全称Linux Control Groups, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。这个项目最早是由Google的工程师在2006年发起(主要是Paul Menage和Rohit Seth),最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词太过广泛,为避免混乱,被重命名为cgrou

2022-02-19 13:59:26 2963

原创 BC20/BC26-opencpu移植cjson,mqtt等注意事项

  如今芯片慌,单片机涨价的厉害,移远的BC20/BC26等模组的opencpu方案节省MCU,提供计算力的服务。还是很节省成本的。  但是使用模组移植一些标准的开源库的时候就会遇到,编译出错。经过查找原因是,模组对于标准C库的支持其实是有问题的。所以在给的opencpu的sdk中,给出了常用的C stdlib的替代函数,在头文件 ql_stdlib.h 给出了。  比如移植cjson库(https://github.com/DaveGamble/cJSON)除了,stdlib库不能使用还要进行C标准库

2021-11-25 14:01:56 3698

原创 嵌入式linux基于摄像头视频流的二维码/一维码识别和生成(zbar,qrencode)

概况 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。详细的可以参考二维码介绍链接 https://cli.im/news/help/10601 如今二维码和一维码存在于我们生活的每一个角落,由于智能手机的普及几乎每个地方都会用,二维码和一维码的存在减少了大量的人工输入文字和读取文字的操作。 本文挑选的识别和生成二维码/条形码库的为(zb

2021-10-30 14:44:21 3272 1

原创 Linux 多线程应用 降低内存(VSZ)占用

嵌入式开发的内存无疑是非常吃紧的。特别是一些老设备(512MB内存),之前的一台终端设备因为内存占用过高,出现了运行出错,进程管理的APP直接杀死了占用最高的媒体APP,导致视频输出出现异常。于是进探索了内存优化之路。在确保长时间运行内存不会增加(没有内存泄漏)后,首先查看 /proc 下的进程 内存占用的smap 信息:cat /proc/<pid>/smaps|grep -v ' 0 kB'通过观察不难发现大量的内存占用都在栈上。由于这个APP是一个多线程进程,一个线程就有一个栈,

2021-06-15 20:58:04 5018 3

原创 MakeFile构建工程

MakeFile构建工程总结MAKEFILE 简介学习makefile的必要性make 常用知识点基本语句规则常用模式规则符号%符号-模式匹配符号\$@,\$<符号-自动化变量\$(abc:.c=.o)替换后缀makefile常用的函数MAKEFILE 简介在软件开发中,Make是一个构建自动化工具,它通过读取称为Makefiles的文件来自动从源代码构建 可执行程序和库,该文件指定了如何派生目标程序。尽管集成开发环境和特定于语言的编译器功能也可以用于管理构建过程,但Make仍被广泛使用,尤其是在

2021-05-13 16:17:16 534

原创 QT(XML读写)配置读写工具开发

应用的xml配置越来越多,导致配置越来越麻烦,配置之间不断耦合关联,一个忘记改动就是一个bug建过来,真的吃不消。有些修改xml属于机械化的逻辑计算加上操作。于是做一个小工具进行配置的管理,快速计算完成一些配置项的修改。于是封装了 qt的xml的读写接口和文件访问接口,方便调用,搭好框架之后后面基本也就是逻辑和其他文件的修改等。github代码如下,是一个打开指定文件,扫描所有xml文件,指定文件名,元素路径,属性,即可进行修改xml配置,组合上自己的逻辑,即可轻松完成一些死板的机械化配置。(剥离了业务

2021-03-06 16:47:17 686

原创 Linux 动态库(显式、隐式)加载以及应用

linux的动态库加载

2021-01-23 15:15:51 885 3

原创 FreeRTOS-V10 源码分析——内存管理 (heap 1~5)

上篇:《FreeRTOS-V10 源码分析——队列(queue)》前言内存管理可以使用标准的C库malloc()和free()函数分配内存,但由于以下一个或多个原因,它们可能不合适或不合适:它们并不总是在小型嵌入式系统上可用。 它们的实现可以相对较大,占用宝贵的代码空间。 它们很少是线程安全的。 它们不是确定性的;执行函数所需的时间将因调用而异。 可能会受到碎片的困扰。 它们...

2020-01-01 18:01:59 455

原创 FreeRTOS-V10 源码分析——队列(queue)

上篇:《FreeRTOS-V10 源码分析——链表(list),任务(task)》下篇:《FreeRTOS-V10 源码分析——内存管理 (heap 1~5)》目录前言1. 源码分析1)QUEUExQueueCreatexQueueCreateStaticxQueueSendToFrontxQueueSendToBackxQueueSendxQueueO...

2019-12-30 19:10:30 784

原创 FreeRTOS-V10 源码分析——链表(list),任务(task)

下篇:《FreeRTOS-V10 源码分析——队列(queue)》目录前言为什么选择FreeRTOS?1. 文档结构2. 移植3.源码分析1)LIST2)TASKtaskYIELDtaskENTER_CRITICALtaskEXIT_CRITICALxTaskCreatexTaskCreateStaticvTaskDeletevTaskD...

2019-12-28 10:58:48 1180

原创 TCP端口数据调试——Python脚本

1. 效果图可以对多个客户端进行调试tcp相关的通讯的报文调试,使用python3。python的程序复制粘贴会有缩进空格问题要重新格式化。2. 程序例如监控端口 1088,在防火墙打开1088端口,运行脚本,用子设备连接外网IP和端口即可。import threadingimport socketencode = 'utf-8'BUFSIZE = 1024# a...

2019-12-24 14:40:31 402

原创 HTTP应用——上传(POST)数据到服务器,从服务器下载(GET)文件报文

前言HTTP协议是一个简单的请求-响应协议,它通常运行在TCP之上,传输端口一般为80。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;在报文的可读性和调试性上有很大的优势。现在互联网大行其道,HTTP可以说是无处不在(HTTPS就是HTTP的TLS/SSL的加密传输形式,这种方式在认证上比较复杂)。下图展示了其处于网络的应用层:...

2019-12-13 10:58:36 2485

原创 HID设备(USB键鼠/扫码枪)转串口(UART)键盘键值及字符处理示例——CH9350

CH9350是USB键盘鼠标转串口通讯控制芯片,需成对使用。结合异步串口简单易用的特点,实现将USB键盘鼠标和USB主机之间USB通讯方式扩展为异步串口(UART)的方式。这个芯片可以拿来做USB的HOST或SLAVE,HOST模式可以连接两个HID子设备,接收USB键鼠或者扫码枪的输入。当然现阶段也有很多的高端系列的单片机本身芯片就自带USB的HOST,也可以进行选用。CH系列比较出名的是C...

2019-12-07 10:59:01 10527 2

翻译 《Introduction to Linux》——Linux Fundation (15~18/18章)

《10~14章》第十五章 Bash Shell脚本编写 基础篇1.特性与功能假设您要查找文件名,检查关联文件是否存在,然后做出相应的响应,显示一条消息,确认或不确认文件的存在。如果只需要执行一次,则只需在终端上键入命令序列即可。但是,如果您需要多次执行此操作,则自动化是必经之路。为了使命令集自动化,您将需要学习如何编写shell脚本,其中最常用的是与bash一起使用。该图说明了部署脚...

2019-11-03 15:15:40 865

原创 移远NB模组(BC26)OPENCPU开发——MQTT上传接收

前言NB模组在广域物联网领域发挥越来越重要的作用,有些NB模组有一个特性:OPENCPU。这个是降低成本和减少布板空间的利器。这里就以移远通信的NB模组——BC26模组来开发OPENCPU应用。开发环境简介移远的OPENCPU开发环境是GCC加APP烧录工具;虽然有优势,但是开发上做了限制,有些库和功能不能使用。这里贴一个工程的早期demo的Git,完成了MQTT的连接上传接收等的...

2019-10-24 09:56:26 5110

翻译 《Introduction to Linux》——Linux Fundation (10~14/18章)

《1~9章链接》目录第十章 文件操作1. 文件系统2. 文件系统架构3. 比较文件和文件类型4. 数据备份和数据压缩第十一章 文本编辑器1. 基础文本编辑器2. 高级文本编辑器vi和emacs第十二章 用户环境1. 账户,用户和用户组2. 环境变量3. 回顾历史命令4. 文件权限第十三章 文本操作1. cat命令和echo命令2....

2019-10-20 16:18:56 682

原创 STM32 HAL CAN应用

本文使用的STMCube库为STM32Cube FW_F1 V1.8.0版本。不同版本的HAL库使用上有一些的差异。具体的CAN物理层和通讯协议等建议先找资料了解一下(ISO 11898),这里只讲快速应用。网上关于协议讲解的很多,例如:https://www.cnblogs.com/pejoicen/p/3986587.html1. STM32 CubeMX 配置首先安装STM3...

2019-10-14 10:41:43 3524 6

原创 单片机IAP程序升级:通过网络模块或其他任意数据传输方式。

单片机的程序升级其实本质就是对单片机的片上Flash进行擦写,将新的程序写入到运行的Flash位置。做了2G模块的IAP程序升级和基于串口上位机的IAP程序升级。写下一点自己的浅见。概况: 软件上: 具备远程升级的单片机的程序整体具体包含两个部分,一部分是(APP)应用程序,另一部分是(BOOT)引导程序。APP程序就是我们需要进行更新的程序,程序包括的内容:应用相关的程序(业务相关...

2019-09-27 16:02:07 1683

原创 C# 开发Windows上位机WPF过程 (单片机串口设参)

说到设备的通用性,就要讲到设备的参数开放出来给用户设置。这点上毋庸置疑是一件好事,于是之前一直都是通过网上的串口软件类似于SSCOM这种来把要设置的东西放在列表里面,交给生产或者营销,让他们按顺序点就可以了。但是一旦涉及到要改序列号,或者有账号密码之类的设置就会出问题,老是要电联我们。因此也不敢把太多的参数开放,改错了,不知道改哪里的问题很严重。 于是就想到做一个...

2019-08-02 19:01:31 3992

原创 IEEE 754标准 32位浮点数(float)转十进制 C语言

关于32位浮点数转整形的相关知识可以参考这篇博客:https://blog.csdn.net/u011575671/article/details/74518933用Modbus读PLC的浮点数寄存器的时候读取的内容为IEEE 754标准的32位寄存器,需要转换一下,可以根据自己的需求转换,直接贴代码://=========================================...

2019-06-29 11:11:03 11552 7

翻译 《Introduction to Linux》——Linux Fundation(1~9/18章)

目录第一章 Linux基金会第二章 Linux理念和基本概念第三章 Linux系统知识和系统启动1.引导(The boot process)2.内核 初始化(init)进程及系统服务程序3.Linux文件系统基础知识4.选择Linux发行版本第四章 图形界面1.图形桌面第五章 在图形界面进行系统配置1.系统设置第六章 常见应用1.互联网应用2...

2019-05-19 21:33:24 1411

原创 VScode嵌入式开发以及结合Git使用(Github/Coding)

VScode (全称Visual Studio Code) ,该编辑器也集成了所有一款现代编辑器所应该具备的特性,包括语法高亮(syntax high lighting),可定制的热键绑定(customizable keyboard bindings),括号匹配(bracket matching)以及代码片段收集(snippets)。S这款编辑器也拥有对 Git 的开箱即用的支持。以上是百科的介绍...

2019-04-10 21:34:06 2899 1

原创 C (gcc)_PAT A1025 (PAT Ranking)

PAT 甲级1025 PAT 考试分数排序使用C(gcc);学习心得:要仔细,qsort/sort函数以及比较函数使用的学习,strcmp使用。qsort相关介绍百度百科以及别人的文章https://blog.csdn.net/yisandezhuiqiu/article/details/52101667#include<stdio.h>#include<s...

2019-03-19 10:39:55 481

原创 无源滤波 PWM 信号转脉冲信号采集

最近做工业物联网采集,原始的采集方式是脉冲采集,采集PLC的某个动作然后上传到服务器,一直还算是够用。但是突然有一个机器是需要直接采集电机输出的PWM信号。本来想采集电机的编码器的信号的,但是由于是为该设备添加的外加物联网设备,采集编码器的话,从编码器引出的线会造成EMC问题,还要重新做EMC,于是直接采集电机的输出PWM(所谓大江大河,我只取一瓢,对原来机器本身无任何影响)。首先拿示波器测了...

2019-02-24 11:25:33 2795 7

原创 PSpice 常见问题

1.Node NXXXXXX is floating描述:提示某个脚浮地。解决:电路没有放地,Place-Ground(没添加库的添加一下有地的库)。2.No PSpiceTemplate for Q1 或者 Part XX has no 'MODEL' property描述:提示原件的模型没有或者不正确解决:一般是添加的库不对,或者需要手动添加解析库。添加库文件只能添加C:...

2018-07-29 00:16:55 7044 4

原创 高速光耦TLP109——匹配电阻选取

普通光耦的阻抗匹配问题参考我之前的那篇文章《普通光耦 上下拉电阻选择》。现如今通讯速率越来越快的当下,普通光耦在单纯的只接电阻情况下,上升时间Tr有20us左右,这将无法适用于高速通讯。然而高速光耦在使用过程中若阻抗选取不当也会导致上升延迟过大,电平拉不到底等问题。高速光耦TLP109内部构造如下图所示:以下是一个简单使用的电路(C6不贴,除非干扰很大,信号宽度够且能忍受增...

2018-07-28 23:52:33 9331

原创 开关电源(buck) 工作时电感产生噪声

前两天拿到一块控制板30V转5V的BUCK开关电源供的MCU系统,一上电就“滋滋”的响。之前做过一些DC/DC的板子都未曾出现这种情况,仔细的听发现是电感这里发出的噪声。DC/DC部分如上图所示,图中的黑色柱状电感就是此次发出噪音的地方。下面还配了灵魂画师的电感内部构造图。仔细一看板子就发现这颗电感放在板子内部,而且地下还铺地了。ORZ,第一想法就是改板。由于比较赶,最后的办...

2018-07-15 15:41:57 8435 2

原创 485电路(组网/非组网) 上下拉匹配电阻选取

        485电路是工业现场运用最普遍的信号传输线之一,因为差分信号的耦合作用以及共模抑制使其抗干扰能力非常强。然而485电路的应用总会出现一些棘手的问题,此类问题一般为匹配阻抗问题,下面就从485组网(以一个集中器抄32个为例)和1对1的通信做出上下拉阻抗的匹配。                  典型的485电路路上图所示,U4为485芯片,芯片左侧一般为设备内部干扰较少,...

2018-04-15 11:48:39 9341

原创 变压器输出整流的蓄能电容选取方法

现在便携设备基本都是开关电源作,变压器所构成的线性电源由于简单的原理和方便的维修性等,仍然占据这电源部分的大半江山。以下是一个简易的通过变压器和稳压管输出220V-&gt;5V的电路输出:储能使用的电容一般采用电解电容,可以通过计算得到该容值(这里输入是半波,根据电容充放电公式△U/△t=(△Q/△t)/C,严格的数学求解当然也可以~) ,显然对于这种高数题没人喜欢,查阅相关资料,但是...

2018-03-03 10:36:31 2089

原创 光耦 上下拉电阻选择

光耦合器(opticalcoupler,英文缩写为OC)亦称光电隔离器或光电耦合器,简称光耦。内部原理如下图所示: 简易的说明原理:通过将传输的信号通过左侧的发光二极管转化为光信号,再由右侧光敏三极管将光信号转换为电信号。此处探究的是普通光耦(低速,非线性;是的,也就是最便宜的那种),一般的光耦隔离电压约为6KV,也就是对于静电的抵抗能力(8KV及以上)不强,使用的时候还是需要考虑静...

2018-02-03 14:20:14 12861

TCP_SERVICE.py

tcp端口监控调试的python脚本;可以多个客户端同时连接上传,区分显示;可以简易的设置客户端的上传回复;

2019-12-24

Electric Motors and Drives Fundamentals, Types and Applications

电机基础\

2018-10-23

空空如也

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

TA关注的人

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