推荐文章
学习笔记

嵌入式中实现应用层和硬件层分层管理

前言以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会有stm32f10x.h或者stm32f10x_gpio.h,这些文件严格来时属于

阅读更多
一个芯片从构想到完成电路设计是怎样的过程? 一个芯片从构想到完成电路设计是怎样的过程?
一颗芯片从无到有,从有需求到最终应用,经历的是一个漫长的过程,作为人类科技巅峰之一的芯片,它凝聚了人们的智慧。而芯片产业链也是极其复杂的,在此,我大致把它归为四个部分(市场需求–芯片设计–芯片制造–测试封装),然后再一一的做详细介绍。 一、
2023-07-03
PID算法:过程控制中的重要指标 PID算法:过程控制中的重要指标
PID算法广泛的被应用在很多的控制系统中,最终的目的都是希望通过pid控制器实现被控量能稳定在预期的目标值。使用pid控制器作用于系统的时候,正常情况下它应该是不断的发生作用的,从而让系统能够克服外部带来的干扰最终稳定在期望值。所以对于在一
2023-07-03
总结STM32嵌入式面试知识点 总结STM32嵌入式面试知识点
STM32F1和F4的区别? 内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核; 主频不同:F1主频72MHz,F4主频168MHz; 浮点运算:F1无浮点运算单位,F4有; 功能性能:F4外设比F1丰富且功能更强大,
2023-07-03
20道嵌入式经典面试题(附答案) 20道嵌入式经典面试题(附答案)
嵌入式系统中经常要用到无限循环,如何用C编写死循环 答:while(1){} 或者 for(;;) 程序的局部变量存在于哪里,全局变量存在于哪里,动态申请数据存在于哪里。 答:程序的局部变量存在于栈区;全局变量存在于静
2023-07-03
一文搞懂MLCC片式多层陶瓷电容器的特性 一文搞懂MLCC片式多层陶瓷电容器的特性
电容分类电容是三个最常用的无源元器件(电阻、电感)之一。电容的种类有很多,可以从原理上分为:无极性可变电容、无极性固定电容、有极性电容等,从材料上分主要有:CBB电容(聚乙烯),涤纶电容、瓷片电容、云母电容、独石电容(即贴片电容或MLCC
2023-07-03
科普:芯片设计流程 科普:芯片设计流程
芯片设计过程是一项复杂的多步骤工作,涉及从初始系统规格到制造的各个阶段。每一步对于实现生产完全可用芯片的目标都至关重要。本文概述了芯片设计流程、不同阶段以及它们对创建有效芯片的贡献。这些阶段包括系统规范、架构设计、功能设计、逻辑设计、电路设
2023-07-03
数字IC设计入门基础:IC验证设计流程 数字IC设计入门基础:IC验证设计流程
数字验证处于数字IC设计流程的前端,属于数字IC设计类岗位的一种。主要是对数字前端的设计做验证。随着芯片规模不断加大,在IC设计过程中验证的复杂度也进一步加到,需要的用到的岗位人数也越来越多;很多大公司,数字前端设计工程师与验证工程师的比例
2023-07-03
最详细的IC封装图片大全 最详细的IC封装图片大全
IC封装图片大全 版权声明 文章来源于网络,版权归原作者所有,如有侵权,请联系删除。原文:https://mp.weixin.qq.com/s/Sc8gc1Fn-IDm9qmuADD6bw
2023-07-03
专为32位单片机开发的轻量级OTA组件(开源) 专为32位单片机开发的轻量级OTA组件(开源)
今天为大家分享一款专为 32 位 MCU 开发的 OTA 组件。组件包含了 bootloader 、固件打包器 (Firmware_Packager) 、固件发送器 三部分,并提供了基于多款 MCU (STM32F1 / STM32F407
不升级版本也可以修复单片机的bug 不升级版本也可以修复单片机的bug
前言在嵌入式产品开发中,难以避免地会因为各种原因导致最后出货的产品存在各种各样的BUG,通常会给产品进行固件升级来解决问题。 记得之前在公司维护一款BLE产品的时候,由于前期平台预研不足,OTA参数设置不当,导致少数产品出现不能OTA的情况
浅谈单片机Boot的几种自刷新方式 浅谈单片机Boot的几种自刷新方式
汽车软件Boot程序的主要作用是刷新App程序。在一个具体客户项目中,Boot也是客户需求的一部分,跟随项目也有软件开发计划(有的为了和其它Boot区分,把项目上的Boot称作CB, Customer Boot)。对于已经下线盒盖的控制器,
单片机通过 UART 实现 OTA 升级的详细流程 单片机通过 UART 实现 OTA 升级的详细流程
OTA升级已经不是什么新鲜事,现在大多数物联网终端设备,基本具备这个功能。之前分享过一篇 OTA 升级原理的文章:嵌入式设备实现OTA升级的原理。今天以 AT32 为例给大家分享一下 OTA 升级的详细流程。 概述 空中下载技术 OTA
嵌入式设备差分升级原理和实现 嵌入式设备差分升级原理和实现
什么是差分/增量升级借用网上的介绍:适合嵌入式的差分升级又叫增量升级,顾名思义就是通过差分算法将源版本与目标版本之间差异的部分提取出来制作成差分包,然后在设备端通过还原算法将差异部分在源版本上进行还原,从而升级成目标版本的过程。差分升级方案
嵌入式设备实现OTA升级的原理 嵌入式设备实现OTA升级的原理
简介概念OTA:Over-the-Air Technology,即空中下载技术。OTA升级:通过OTA方式实现固件或软件的升级。只要是通过无线通信方式实现升级的,都可以叫OTA升级,比如网络/蓝牙。通过有线方式进行升级,叫本地升级,比如通过
图文详解STM32单片机远程升级 图文详解STM32单片机远程升级
需要两份程序BootLoader和App程序,两份程序均可以通过jlink下载,只需要将下载地址修改一下即可: 在BootLoader中的跳转函数#define APP_FLASH_ADDR 0x8008000 iap_load_app(
深入浅出讲解单片机的BootLoader 深入浅出讲解单片机的BootLoader
对于一个复杂的单片机项目来说,有一个 BootLoader(以下简称BL)是非常重要的。它可以使得你的应用程序代码维护和升级更加便捷。之前分享过一些软件升级的文章:嵌入式设备实现OTA升级的原理嵌入式设备差分升级原理和实现(附代码)专为32
如何减轻CPU负担 如何减轻CPU负担
「CPU运行时间是宝贵的资源,我们要把有限的CPU时间投入到更有意义的事情中去。」 在我们进行嵌入式开发的过程中,你一定干过这几件事:用GPIO模拟某种通信接口,比如SPI等;用空循环来实现延时delay;空等寄存器的关键状态位。也许是出
2023-07-02
用三种优雅的方式实现嵌入式状态机 用三种优雅的方式实现嵌入式状态机
状态机的实现无非就是三个要素:状态、事件、响应。 转换成具体的行为,其实就三句话: 发生了什么事? 现在系统处在什么状态? 在这样的状态下发生了这样的事,系统要干什么? 用C语言实现状态机,主要有三种方法:switch—case 法、表
2023-07-01
嵌入式中实现应用层和硬件层分层管理 嵌入式中实现应用层和硬件层分层管理
前言以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会有stm32f10x.h或者stm32f10x_gpio.h,这些文件严格来时属于硬件层的,如果软件层出现这些文件会显得很乱。使用过Linux的童鞋们肯
2023-07-01
GD32F30x的串口不定长DMA接收和发送史诗级例子 GD32F30x的串口不定长DMA接收和发送史诗级例子
虽然串口是单片机最常用的一种外设,今天就由我来给大家展示一个最好用的串口接收发送例子解说吧。DMA不定长接收和DMA发送。GD32单片机自带串口发送接收有三种方式,下面就简单介绍一下三种处理数据的方式: 轮询方式(Polling):使用轮
2023-06-30
如何实现 MCU软件中多个模块初始化函数的优雅调用 如何实现 MCU软件中多个模块初始化函数的优雅调用
序言 做嵌入式开发的需要把需要把板载的每一个外围设备都进行初始化,有时候我们为了代码的可读性、易移植性会把每个模块单独封装,使用不同的.c和.h文件进行管理,在模块对应的.h文件中会把向外开放的API接口申明出来,方便上层调用,其中模块的初
2023-06-29
STM32汇编指令笔记 STM32汇编指令笔记
ABCDEFGHIIT 条件执行体,指令包含有IT、ITT、 ITTT、 ITTTT、ITE、 ITEE、ITEEE, 该指令包括的意义为IF-THEN-ELSEIT{x{y{z}}}<q> <firstcond>
STM32文件归档 STM32文件归档
文件名称 简写 文件名称 RM Reference Manual PM Programming Manual AN Application Note ARM调试接口协议说明 ARM Debug Interface A
2023-06-28
STM32的内部FLASH是如何划分的 STM32的内部FLASH是如何划分的
因为STM32的内部FLASH大小不一,不同的大小划分是不一样的,但是大同小异这里是以STM32F103C8T6为例进行说明。 基础知识补充 1 字节 = 8 位(bit)1 千字节(KB)= 1024 字节1 兆字节(MB)=
2023-06-27
FOC控制算法详解 FOC控制算法详解
基本概念: FOC(field-oriented control)为磁场导向控制,又称为矢量控制(vector control),是一种利用变频器(VFD)控制三相电机的技术,利用调整变频器的输出频率、输出电压的大小及角度,来控制电机的输出
2023-06-02
PID到底是个啥?来给你讲个故事 PID到底是个啥?来给你讲个故事
啥是PID?PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。PID已经有107年的历史了。它并不是什么很神圣的东西,大家一定都见过PID的实际应用。比如四轴飞
2023-06-02
必看深度:震惊世间的惊人“神码”!(附完整代码) 必看深度:震惊世间的惊人“神码”!(附完整代码)
一战封神的 0x5f375a86雷神之锤3是一款九十年代非常经典的游戏,内容画面都相当不错,作者是大名鼎鼎的约翰卡马克。由于当时游戏背景原因,如果想要高效运行游戏优化必须做的非常好,否则普通人的配置性能根本不够用,在这个背景下就诞生了“快速
2023-06-02
Windows BAT脚本(批处理)——for循环,if判断,goto跳转,遍历文件名,start打开网页 Windows BAT脚本(批处理)——for循环,if判断,goto跳转,遍历文件名,start打开网页
for 语句 在cmd窗口中:for %I in (command1) do command2在批处理文件中:for %%I in (command1) do command2for语句的基本要素: for、in和do是for语句的关键字
2023-06-01
Flex 布局教程:语法篇 Flex 布局教程:语法篇
网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C
2023-06-01
CSS样式表 CSS样式表
CSS,font-family,好看常用的中文字体 例1(小米米官网): font-family: "Arial","Microsoft YaHei","黑体","宋体&
2023-06-01
ARM语法 Part 7[栈和函数] ARM语法 Part 7[栈和函数]
Part 7:栈和函数在这一部分我们来看一下进程中叫做栈的内存区域。本章涵盖了栈的用途和相关操作。此外我们将介绍 ARM 中函数的实现、类型和差异。 栈一般而言,栈就是进程中的一段内存。这段内存是在进程创建时分配的。我们使用栈来保存一些临时
2023-06-01
ARM语法 Part 6[条件状态和分支] ARM语法 Part 6[条件状态和分支]
在探讨CPSR时我们已经接触了条件状态。我们通过跳转(分支)或者一些只有满足特定条件才执行的指令来控制程序在运行时的执行流。通过CPSR寄存器中的特定bit位来表示条件状态。这些位根据指令每次执行的结果而不断变化。例如,比较运算时如果两个数
2023-06-01
ARM语法 Part 5[加载和存储多个值] ARM语法 Part 5[加载和存储多个值]
有时你想要更有效率,一次加载(或存储)多个值。为此我们可以使用LDM(load multiple)和STM(stroe multiple)指令。这些指令有各种变体,基本上只因访问初始地址的方式而异。这是我们本节将要使用的代码,将一步步地认识
2023-06-01
ARM语法 Part 4[内存指令:加载和存储] ARM语法 Part 4[内存指令:加载和存储]
ARM使用加载(Load)/存储(Stroe)指令来读写内存,这意味着你只能使用LDR和STR指令访问内存。在ARM上数据必须从内存中加载到寄存器之后才能进行其他操作,而在x86上大部分指令都可以直接访问内存中的数据。如前所述,在ARM上增
2023-06-01
ARM语法 Part 3[ARM指令集] ARM语法 Part 3[ARM指令集]
ARM模式和Thumb模式ARM处理器主要有两种工作模式(先不算Jazelle)-ARM状态和Thumb状态。这些状态模式与权限级别无关,它们主要区别是指令集,在ARM模式下指令集始终是32-bit,但是在Thumb模式下可以是16-bit
2023-06-01
ARM语法 Part 2[数据类型] ARM语法 Part 2[数据类型]
与高级编程语言类似,ARM汇编也支持操作不同的数据类型。 我们载入(load)或存储(store)的数据类型可以是有符号或无符号的字、半字或字节。这些数据类型的扩展符是:-h或-sh代表半字,-b和-sb代表字节,其中字没有扩展符号。有符
2023-06-01
ARM语法 Part 1[ARM汇编介绍] ARM语法 Part 1[ARM汇编介绍]
序言看到一个比较好的ARM汇编入门教程。上不了班,闲着没事翻译了一下。 原址:https://azeria-labs.com/writing-arm-assembly-part-1/ ARM 汇编语言入门(一)Part1:ARM汇编介绍处理
2023-06-01
ARM汇编(5)-OC反汇编 ARM汇编(5)-OC反汇编
OC代码的精髓其实就是objc_msgSend。而OC的反汇编其实就是查看其中的方法调用。 objc_msgSend有两个参数,第一个是id类型,第二个是SEL类型。id、SEL其实都是一个结构体,内部有isa指针,所以这两个在内存中占有8
2023-06-01
ARM汇编(4)-指针 ARM汇编(4)-指针
1. 指针 指针也就是内存地址,指针变量是用来存放内存地址的变量。不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。可使用 & 运算符访问地址。 之前的文章中有过说明,指
2023-06-01
ARM汇编(3)-状态寄存器 ARM汇编(3)-状态寄存器
1. 状态寄存器CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能不同)。这种寄存器在ARM中,被称为状态寄存器就是CPSR(current program status register)寄存器。 CPSR和其他
2023-06-01
ARM汇编(2)-函数 ARM汇编(2)-函数
1. 关于CPU的补充1.1 寄存器CPU除了有控制器、运算器还有寄存器。其中寄存器的作用就是进行数据的临时存储。 CPU的运算速度是非常快的,为了性能CPU在内部开辟一小块临时存储区域,并在进行运算时先将数据从内存复制到这一小块临时存储
2023-06-01
ARM汇编(1)-初识汇编 ARM汇编(1)-初识汇编
1. 初识汇编 汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同
2023-06-01
CAN通信基础知识 CAN通信基础知识
CAN是什么?CAN 是 Controller Area Network 的缩写,中文是控制器局域网路,是 ISO 国际标准化的串行通信协议之一。CAN: 控制器局域网( Controller Area Network)属于现场总线的范畴,
2023-06-01
Git命令汇总 Git命令汇总
Git目前是各大互联网公司使用的版本控制工具,进大厂,必须要学会Git的基本使用。于是乎,我熬夜整理了这篇文章。这篇文章主要是汇总讲解Git的使用命令。 Git的安装通过 https://git-scm.com/downloads ,gi
2023-06-01
VSCode搭建STM32开发环境 VSCode搭建STM32开发环境
玩过单片机的都知道,Keil是一款收费软件,虽然有相应的方法可以正常使用,但还是少不了很多麻烦,并且keil的界面对于我们开发者来说非常不友好。那么这时VSCode的出现就很好的解决了这一问题。今天我们就来使用VSCode搭建STM32的开
2023-06-01
NAT穿透技术、穿透原理和方法详解 NAT穿透技术、穿透原理和方法详解
NAT分类 穿透流程图 推荐视频P2P技术—NAT原理,NAT类型,网络穿透原理 从50道腾讯面试题,分析腾讯c++后端工程的技能树 学习地址:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 基础型NAT仅将
2023-06-01
P2P之UDP穿透NAT的原理与实现 P2P之UDP穿透NAT的原理与实现
日期:2004-5-25出处:P2P中国(PPcn.net)作者:shootingstars (有容乃大,无欲则刚) 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说
2023-06-01
如何防止破解?MCU加密技术进化史 如何防止破解?MCU加密技术进化史
自从上世纪70年代MCU诞生以来,芯片的破解技术与防止芯片被破解方案就在不断地上演着“道高一尺,魔高一丈”,一山更比一山高的追逐。本文将单片机在安全保护方面的发展历程与大家分享,并在文章的最后,总结了现阶段安全级别最高的智能卡芯片的优点及其
2023-05-30
你的MCU是怎么被破解的! 你的MCU是怎么被破解的!
在我们周围,MCU 的安全等级正在逐步提升,一些公司甚至推出了安全主控,这是很好的现象,说明各行业都越来越重视嵌入式领域的信息安全和程序安全了。但目前仍有很多行业,比如消费类电子产品,低成本的通讯模块、电源控制模块等等,迫于成本压力以及更新
2023-05-30
单片机解密技术简介 单片机解密技术简介
什么是单片机解密?单片机解密又叫单片机破解,芯片解密,IC解密,但是这严格说来这几种称呼都不科学,但E经成了习惯叫法,我们把CPLD解密,DSP解密都习惯称为单片机解密。单片机只是能装载程序芯片的其中一个类。能烧录程序并能加密的芯片还有DS
2023-05-30
1 / 2