![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 53
嵌入式Linux系统开发
博主就职于芯片原厂,熟悉硬件、STM32单片机、嵌入式 Linux、Android。
展开
-
你真的懂继电器吗?
继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。作为控制元件,概括起来,继电器有如下几种作用:扩大控制范围:例如,多触点继电器控制信号达到某一定值时,可以按触点组的不同形式,同时换接、开断、接通多路电路。放大:例如,灵敏型继电器、中间继电器等,用一个很微小的控制量,可以控制很大功率的电路。综合信号:例如,当多个控制信号按规定的形式输入多绕组继电器时,经过比较综合,达到预定的控制效果。自动、遥控、监测:例如,自动装原创 2022-06-05 18:00:39 · 4039 阅读 · 1 评论 -
动态库与静态库的使用
库是一种可执行的二进制文件,是编译好的代码。使用库可以提高开发效率。在 Linux 下有静态库和动态库。因此编译出来的体积就比较大。静态库在程序编译的时候会被链接到目标代码里面。所以程序在运行的时候不再需要静态库了。因此编译出来的体积就比较大。以 lib 开头,以.a 结尾动态库(动态库也叫共享库)在程序编译的时候不会被链接到目标代码里面,而是在程序运行的时候被载入的。所以程序在运行的时候需要动态库了。因此编译出来的体积就比较小。以 lib 开头,以.so 结尾。静态库的制作步骤:编写或准备库的源原创 2022-04-24 19:26:26 · 1990 阅读 · 0 评论 -
一文带你了解蓝牙
1、蓝牙概念蓝牙,是一种支持设备短距离通信(一般 10m 内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。优点是方便快捷、灵活安全、低成本、低功耗的数据通信和语音通信。2、背景1998 年 5 月,爱立信、诺基亚、东芝、 IBM 和英特尔公司等五家著名厂商, 在联合开展短程无线通信技术的标准化活动时提出了蓝牙技术,其宗旨是提供一种短距离、低成本的无线传输应用技术。蓝牙名字的由来: “蓝牙” 这名称来自 10 世纪的丹麦国王哈拉尔德的外号。出身原创 2022-04-23 20:38:14 · 3977 阅读 · 0 评论 -
芯片附近为什么都放 0.1uF 电容 ?
电容思维导图如下:电容有四大作用:去耦、耦合(隔直通交)、滤波、储能。今天我们主要谈论去耦作用。电容封装相信大家都用过这几种电容,板子上最多的是多层陶瓷电容。钽电容:主要用在电源电路中,博主被它炸过很多次…去耦电容这是 STM32F103 最小系统原理图,STM32F103VET6 需要五路 3.3V 供电,他的 3.3V 一般来源于 LDO(低压差线性稳压器),比如 LM1117LDO 比 DC-DC 的方式(TPS5430)更能提供稳定的电压,但对芯片来说依旧不够,我们需要在芯片供原创 2022-04-23 13:49:47 · 1585 阅读 · 0 评论 -
Linux input 子系统
按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如按键值、坐标等信息,input 核心层负责处理这些事件。input 子系统1、input 子系统简介input 就是输入的意思,因此 input 子系统就是管理输入的子系统,和 pinctrl 和 gpio 子系统一样,都是 Linux 内核针对某一类设备而创建的框架。比如原创 2022-04-18 22:25:44 · 599 阅读 · 1 评论 -
项目研发五大阶段
1、EVT: Engineering Verification Test 工程验证测试。产品开发初期的设计验证。设计者实现样品时做初期的测试验证,包括功能和安规测试,一般由RD(Research&Development)对样品进行全面验证,因是样品,问题可能较多,测试可能会做N次。2、DVT: Design Verification Test 设计验证测试。解决样品在EVT阶段的问题后进行,对所有信号的电平和时序进行测试,完成安规测试,由RD和DQA(Design Qualiy Ass原创 2021-07-12 11:52:25 · 4677 阅读 · 3 评论 -
如何在服务器上编译Nginx
原创 2021-06-11 12:54:11 · 154 阅读 · 1 评论 -
platform 驱动框架
所谓的 platform 驱动并不是独立于字符设备驱动、块设备驱动和网络设备驱动之外的其他种类的驱动。platform 只是为了驱动的分离与分层而提出来的一种框架,其驱动的具体实现还是需要字符设备驱动、块设备驱动或网络设备驱动。/* 设备结构体 */ struct xxx_dev{ struct cdev cdev; /* 设备结构体其他具体内容 */}; struct xxx_dev xxxdev; /* 定义个设备结构体变量 */ static int xxx_open原创 2021-05-24 20:20:23 · 377 阅读 · 0 评论 -
STM32启动文件
此为startup_stm32f103x_hd.s启动文件的内容Stack_Size EQU 0x00000400 系统设置的栈的大小。Heap_Size EQU 0x00000200 系统设置的堆的大小。接下来一大堆DCD的就是中断向量表,在STM32F103中,代码是从0x0800 0000开始存储的,并且中断向量表是在代码最开始的地方,所以中断向量表就是在0x0800 0000开始存储的。中断向量表的设置是单片机各种中断可以正常使用的必要设置。ARM原创 2021-04-19 15:27:26 · 271 阅读 · 0 评论 -
Cortex-A内核寄存器
Cortex-A7 有 9 种运行模式,每一种运行模式都有一组与之对应的寄存器组。每一种模式可见的寄存器包括 15 个通用寄存器(R0~R14)、一两个程序状态寄存器和一个程序计数器 PC。在这些寄存器中,有些是所有模式所共用的同一个物理寄存器,有一些是各模式自己所独立拥有的,各个模式所拥有的寄存器如表 6.3.2 所示:...原创 2021-04-14 16:39:06 · 475 阅读 · 0 评论 -
工程研发中EVT、DVT、PVT、MP等名词解释
做项目的过程中,我们的项目会经历几个阶段,用以把控项目进度,本文为你讲解这些专有名词。一般主要分为四个阶段,中间可以穿插其他阶段:EVT: Engineering Verification Test工程验证测试产品开发初期的设计验证。设计者实现样品时做初期的测试验证,包括功能和安规测试,一般由RD(Research&Development)对样品进行全面验证,因是样品,问题可能较多,测试可能会做N次。DVT: Design Verification Test设计验证测试解决样品在EV原创 2021-01-01 11:05:59 · 7398 阅读 · 0 评论 -
电源部分硬件原理图分享
TPS5430是DC-DC型变换芯片,通过高频开关频率和电感储能放能达成。LM1117是LDO型变换器件(低压差线性稳压器),LM1117可以将5V转3.3V,5V转2.5V,5V转1.8V等,并且转换电压稳定。本文主要采用这两种变换芯片。12V转+5V12V转-5VTPS5430可以将5.5V~36V的输入,转换成你所想要的输出(不高于输入),只需要更改右边两个电阻的比例即可。下载芯片手册网址如下:https://www.alldatasheet.com/https://www.all原创 2020-12-26 12:35:35 · 2408 阅读 · 0 评论 -
微信公众号自动回复如何添加超链接
先用电脑进入公众号后台网页管理系统https://mp.weixin.qq.com/进入以后,在功能下面,有个自动回复,有三个选项,有“关键词回复”、“收到消息回复”、“被关注回复”。这里我们在被关注回复中设置超链接。格式为<a href="网址">名称</a>例如<a href="https://mp.weixin.qq.com/s/LIWoOQ-syR5gDSQIszD4Lg">自我介绍在这里</a>效果如下:欢迎关注我的微信公众号原创 2020-12-24 22:24:19 · 3057 阅读 · 0 评论 -
ROM与RAM
RAM、SRAM、DRAM、SDRAM、DDR SDRAM、ROM、PROM、EPROM、EEPROM、NAND flash、NOR flash原创 2020-11-23 20:31:42 · 343 阅读 · 1 评论 -
Soc片上系统和非Soc的区别
像电脑这种,CPU和内存,USB分立的,就不是Soc像STM32或者S3C2440,这种单片机或者嵌入式芯片,是Soc,因为在它的一个芯片内部,除了CPU还继承了各种SD卡、USB、SPI、LCD等,直接引出IO引脚级就可以用的,就称之为片上系统(一个芯片内部集成了一个大的系统)。...原创 2020-11-16 19:27:04 · 1296 阅读 · 0 评论 -
linux下man的使用
若用到函数,不知道他怎么用,在linux中用:man mmap 即可查看编程手册,主要看包含头文件和函数原型不过有时候你要查看open,打开文件的函数,要输入:man 2 open原创 2020-10-19 11:17:33 · 163 阅读 · 0 评论 -
记录学习:韦东山第三期_字符编码_第二篇
1、普通外国人,用的数字和字母有限,1Byte可以表示完全,根据ASCII表。如下:2、后来因为中国人要用汉字,所以引入了GB2312编码表,国标(6000多个汉字)。一个汉字用2个Byte表示。如下:随后又扩展了GBK,扩展编码,能够达到几万个汉字。3、然后呢,港澳台同胞也要用电脑,是繁体字,所以制定了BIG5标准,也是2个Byte表示一个汉字,但内部编码和GB2312不一样。也就是说,即便内部都是d6 d0,但是BIG5里面是其他汉字,这就导致从台湾过来的文档,在大陆打开会乱码。4、由于想原创 2020-10-18 18:30:20 · 260 阅读 · 0 评论 -
记录学习:韦东山第三期_数码相框框架_第一篇
数码相框框架两个进程,其下多个线程。原创 2020-10-18 17:22:27 · 467 阅读 · 0 评论 -
error: ‘for’ loop initial declarations are only allowed in C99 mode
报错如下比如写出下面这段程序:for (int i = 0; i < n; ++i){ do_something();}然后用gcc编译,会报 ‘for’ loop initial declarations are only allowed in C99 mode的错误。原因是在循环条件中声明变量,只在C99标准中支持,C90标准不支持。所以改成:int i;for (i = 0; i < n; ++i){ do_something();}这样编译就可以通过原创 2020-10-17 22:03:36 · 285 阅读 · 0 评论 -
C语言三剑客:C陷阱与缺陷、C和指针、C专家编程
有需要的私聊我,发给你。原创 2020-10-16 17:43:41 · 819 阅读 · 4 评论 -
IWDG独立看门狗和WWDG窗口看门狗
IWDGSTM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。WWDG窗口看门狗跟独立看门狗一样,也是一个递减计数器不断的往下.原创 2020-10-14 20:09:19 · 325 阅读 · 0 评论 -
无操作系统时的设备驱动和有操作系统时的设备驱动
原创 2020-10-09 12:02:39 · 353 阅读 · 0 评论 -
线程池精讲(pthread pool)
线程池也是多线程的处理方式。是将“生产者”线程提出任务添加到“任务队列”,然后一些线程自动完成“任务队列”上的任务。多线程编程,创建一个线程,指定去完成某一个任务,等待线程的退出。虽然能够满足编程需求,但是当我们需要创建大量的线程的时候,在创建过程以及销毁线程的过程中可能会消耗大量的CPU.增加很大开销。如: 文件夹的copy WEB服务器的响应。 。。。。 。。。。 线程池就是用来解决类似于这样的一个问题的,可以降低频繁地创建和销毁线程所带来地开销。线程池技术思路: 一般原创 2020-09-25 20:26:49 · 1227 阅读 · 0 评论 -
关于驱动程序与BSP的区别
BSP即Board Support Package,板级支持包。它来源于嵌入式操作系统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义好的接口进行交互。BSP是所有与硬件相关的代码体的集合。BSP在嵌入式系统中的角色,很相似于在PC系统中的BIOS和驱动程序的地位。BSP就看成BIOS+驱动或者bootloader+驱动BSP和驱动的区别:bsp还包括了bootloader,或原创 2020-09-13 11:19:03 · 16843 阅读 · 0 评论 -
gzip: stdin: invalid compressed data--format violated
这个错误提示的是资源不完整。我发现是关于我上传文件的方式有问题,我是上传到虚拟机,直接拖进去的。建议在windows和linux之间互传文件的时候,以压缩包的方式比较好。原创 2020-08-24 14:13:48 · 1647 阅读 · 0 评论 -
VMware打开虚拟机提示权限不足
vmware.exe 右键—>属性—>兼容性—>以管理员身份运行此程序,打勾。原创 2020-08-12 09:54:16 · 5197 阅读 · 0 评论 -
进程的三种基本状态及其转换
(1)就绪状态:进程已获得除CPU外的所有必要资源,只等待CPU时的状态。一个系统会将多个处于就绪状态的进程排成一个就绪队列。(2)执行状态:进程已获CPU,正在执行。单处理机系统中,处于执行状态的进程只一个;多处理机系统中,有多个处于执行状态的进程。(3)阻塞状态:正在执行的进程由于某种原因而暂时无法继续执行,便放弃处理机而处于暂停状态,即进程执行受阻。(这种状态又称等待状态或封锁状态)通常导致进程阻塞的典型事件有:请求I/O,申请缓冲空间等。一般,将处于阻塞状态的进程排成一个队列,有的系统还根据原创 2020-08-11 13:50:37 · 2990 阅读 · 0 评论 -
pcs单位
pcs是一种计量单位 ,即pieces的缩写,就是个、件的意思。可以说是数量单位,不是计量单位。原创 2020-08-10 09:20:06 · 15309 阅读 · 0 评论 -
dmesg用法详解
dmesg 命令的使用范例‘dmesg’命令设备故障的诊断是非常重要的。在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息。‘dmesg’命令在多数基于Linux和Unix的操作系统中都可以使用。dmesg可以打印你在内核中加的printk‘dmesg’命令的使用语法如下dmesg [options…]1. 列出加载到内核中的所有驱动我们可以使用如‘more’。 ‘tail’, ‘less ’或者‘grep’文字处理工具来处理‘dmesg’命令的原创 2020-08-05 17:19:03 · 1326 阅读 · 0 评论 -
pin to pin 的意思
比较两个IC时,经常用到pin to pinpin to pin的意思是指两个IC的pin角功能完全一致,封装也完全一致换句话说,如果你以前用的IC没有了,可以找一个pin to pin 的IC完全替代,而不用更改PCB的设计。原创 2020-08-04 11:11:24 · 25967 阅读 · 0 评论 -
notepad++列编辑功能
当时看韦东山视频的时候,看到了老师用notepad++编辑一列,感觉很方便,遂记录。在Notepad++中,按住Alt键之后,就处于列(编辑)模式了。比如,按住Alt键,此处从上到下,选择多列:类似于这样,与行选中类似,可以很方便删除相同的东西。参考https://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/index.htmlhttps://www.crifan.com/files/doc/docbook/rec_s原创 2020-08-03 17:12:59 · 1023 阅读 · 0 评论 -
secureCRT停止滚动
一、选项----会话选项----终端界面,把 “输出时滚动到底部” 前面的勾勾去掉。然后把滚动条拖到你想要的位置就行了二、ctrl + S 暂停ctrl + Q 重启小技巧:secureCRT中,选中即是复制。点击鼠标右键可以粘贴。...原创 2020-08-03 15:51:23 · 5128 阅读 · 0 评论 -
文件系统及其对应支持的最大文件大小
FAT32(baiWindows):支持最大分区128GB,最大文件4GB。NTFS(Windows):支持最大分区2TB,最大文件2TB。FAT16(Windows):支持最大分区2GB,最大文件2GB。HPFS(OS/2):支持最大分区2TB,最大文件2GB。EXT2和EXT3(Linux):支持最大分区4TB,最大文件2GB。JFS(AIX):支持最大分区4P(block size=4k),最大文件4P。XFS(IRIX):这是个正经的64位的文件系统,可以支持9E(2的63次方)的分区。原创 2020-07-22 17:18:18 · 6481 阅读 · 0 评论 -
进程和线程的不同理解角度
比喻”进程是资源分配的最小单位,线程是CPU调度的最小单位“做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运行)一个进程可以包含多个线程(一辆火车可以有多个车厢)不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘)同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一列火车不会影响到另外一列火车,但是如果一列火车上中间的一原创 2020-07-22 11:05:05 · 140 阅读 · 0 评论 -
NOR flash和NAND flash的区别
一、NAND flash和NOR flash的性能比较1、NOR的读速度比NAND稍快一些。2、NAND的写入速度比NOR快很多。3、NAND的4ms擦除速度远比NOR的5s快。4、大多数写入操作需要先进行擦除操作。5、NAND的擦除单元更小,相应的擦除电路更少。二、NAND flash和NOR flash的接口差别NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。转载 2020-07-17 15:04:49 · 709 阅读 · 0 评论 -
ARM7三级流水线
MIPS(Million Instruction Per Second)表示每秒多少百万条指令。比如0.9MIPS,表示每秒九十万条指令。执行指令的上升,得益于多级流水线制度。3级流水线如上图所示(PC为程序计数器),流水线使用3个阶段,因此指令分3个阶段执行。⑴ 取指从存储器装载一条指令⑵ 译码识别将要被执行的指令⑶ 执行处理指令并将结果写会寄存器以前学过的51单片机,因为比较简单,所以它的处理器只能完成一条指令的读取和执行后,才会执行下一条指令。这样,PC始终指向的正在“执行”的指令。而原创 2020-07-17 09:58:51 · 1728 阅读 · 0 评论 -
EEPROM与flash的区别
EEPROM,不用擦除直接写,而flash要擦除再写原创 2020-07-15 12:05:49 · 247 阅读 · 0 评论 -
printf、fprintf、dprintf、sprintf、snprintf、vprintf
printf、fprintf、dprintf、sprintf、snprintf均是格式化输出原型#include <stdio.h>int printf(const char *format, ...);int fprintf(FILE *stream, const char *format, ...);int dprintf(int fd, const char *format, ...);//Return: 输出字符的数量 if OK, 负数 if outp原创 2020-07-09 14:44:33 · 450 阅读 · 0 评论 -
LiteOS下支持的命令(串口)
call cat cat_logmpp cd cpup date dmesg findsym free help hwi i2c_read i2c_write lddrop ls lsfd mclose memcheck mk原创 2020-07-06 17:15:19 · 892 阅读 · 0 评论 -
BVT、DVT、PVT、EVT
EVT: Engineering Verification Test工程验证测试产品开发初期的设计验证。设计者实现样品时做初期的测试验证,包括功能和安规测试,一般由RD(Research&Development)对样品进行全面验证,因是样品,问题可能较多,测试可能会做N次。DVT: Design Verification Test设计验证测试解决样品在EVT阶段的问题后进行,对所有信号的电平和时序进行测试,完成安规测试,由RD和DQA(Design Qualiy Assurance)验证。原创 2020-07-06 09:58:25 · 1815 阅读 · 0 评论