技术
<strong>理解PWM需要知道的知识</strong>
<strong>(1)脉冲</strong>
解释:电子设备中电平状态发生的突变,通常突变时间很短,突变后极短时间后重新变为为原来的电平状态.(突变状态很短,两次突变间的时间相对较长)
<strong>(2)脉冲循环</strong>
<strong>1 、嵌入式软件基础</strong>
(1)嵌入式软件的特点:
A、规模较小。
B、开发难度大。
C、实时性和可靠性要求高。
D、要求固化存储。
(2)嵌入式软件分类:
A、 系统软件:控制和管理嵌入式系统资源,如嵌入式操作系统、驱动程序、中间件等。
B、 应用软件:定义嵌入式设备的主要功能和用途,负载与用户进行交互。
C、 支撑软件:辅助软件开发的工具软件。
(3)无操作系统的嵌入式软件的两种实现方式:
A、 循环轮转
优点:简单、直观、开销小、可预测。
缺点:过于简单,所有代码顺序执行,无法处理异步事件,缺乏并行处理能力。
对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一,一般是优化了代码的尺寸,就会带来执行时间的增加,如果优化了程序的执行速度,通常会带来代码增加的副作用,很难鱼与熊掌兼得,只能在设计时掌握一个平衡点。
一、程序结构的优化
1、程序的书写结构
虽然书写格式并不会影响生成的代码质量,但是在实际编写程序时还是应该尊循一定的书写规则,一个书写清晰、明了的程序,有利于以后的维护。在书写程序时,特别是对于While、for、do…while、if…elst、switch…case 等语句或这些语句嵌套组合时,应采用“缩格”的书写形式,
2、标识符
在做一款消费电子产品时,需要采集电池电压(3.3V-4.2V),同时在休眠的时候希望尽量减小待机电流。电池电压采集电路采用两个1%的300K电阻进行分压,由该电路引起的待机电路为4.2/(300+300)mA=7uA.此时比较合理(整机的待机电流要求30uA以内)。
上一篇:<a href="http://mcu.eetrend.com/content/2018/100009766.html">UCOS-III使用的47个知识点!</a>
48、可以人工地计算出任务需要的堆栈空间大小,逐级嵌套所有可能被调用的函数, 添加被调用函数中所有的参数, 添加上下文切换时的CPU 寄存器空间, 添加切换到中断时所需的 CPU 寄存器空间,添加处理 ISRs 所需的堆栈空间。 把上述的全部相加, 得到的值定义为最小的需求空间。 因为我们不可能计算出精确的堆栈空间。 通常是再乘以 1.5 以确保任务的安全运行。
1、uC/OS-III其中最有用的功能应该是时间片轮转法( roundrobin), 这个是 uC/OS-II 中不支持的,但是现在已经是 uC/OS-III 的一个功能了。
2、uC/OS-III 被设计用于 32 位处理器, 但是它也能在 16 位或 8 位处理器中很好地工作。
3、一共有 2 种类型的实时系统:软实时系统和硬实时系统。硬实时系统中,运算超时是不允许发生的,运算超时会导致严重后果。但是在软实时系统中 , 超时不会导致严重后果
4、前后台系统:包含一个无限循环的模块实现需要的操作(后台)。中断处理程序实现异步事件(前台)。前台也叫做中断级,后台也叫作任务级。
<strong>引言</strong>
对于任何使用 C 语言的人,如果问他们 C 语言的最大烦恼是什么,其中许多人可能会回答说是指针和内存泄漏。这些的确是消耗了开发人员大多数调试时间的事项。指针和内存泄漏对某些开发人员来说似乎令人畏惧,但是一旦您了解了指针及其关联内存操作的基础,它们就是您在 C 语言中拥有的最强大工具。
本文将与您分享开发人员在开始使用指针来编程前应该知道的秘密。本文内容包括:
●导致内存破坏的指针操作类型
●在使用动态内存分配时必须考虑的检查点
●导致内存泄漏的场景
如果您预先知道什么地方可能出错,那么您就能够小心避免陷阱,并消除大多数与指针和内存相关的问题。
<strong>什么地方可能出错?</strong>
<strong>1. 嵌入式微处理器的基本结构</strong>
(1)嵌入式硬件系统一般由嵌入式微处理器、存储器和输入/输出部分组成。
(2)嵌入式微处理器是嵌入式硬件系统的核心,通常由控制单元、算术逻辑单元和寄存器3大部分组成:
A、控制单元:主要负责取指、译码和取数等基本操作并发送主要的控制指令。
B、算术逻辑单元:主要处理数值型数据和进行逻辑运算工作。
C、寄存器:用于暂存临时性的数据。
<strong>2. 嵌入式微处理器的分类(根据用途)</strong>
(1)嵌入式微控制器(MCU):又称为单片机,片上外设资源一般比较丰富,适合于控制。最大的特点是单片化,体积小,功耗和成本低,可靠性高。目前约占70%的市场份额。
其实了解芯片解密方法之前先要知道什么是芯片解密,网络上对芯片解密的定义很多,其实芯片解密就是通过半导体反向开发技术手段,将已加密的芯片变为不加密的芯片,进而使用编程器读取程序出来。
<strong>芯片解密所要具备的条件是:</strong>
第一、你有一定的知识,懂得如何将一个已加密的芯片变为不加密。
第二、必须有读取程序的工具,可能有人就会说,无非就是一个编程器。是的,就是一个编程器,但并非所有的编程器是具备可以读的功能。这也是就为什么我们有时候为了解密一个芯片而会去开发一个可读编程器的原因。具备有一个可读的编程器,那我们就讲讲,芯片解密常有的一些方法。
<font color="#33b1c8">1、软件攻击:</font>
基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-II、eCos、FreeRTOS和rt-thread。下面分别介绍这五种嵌入式操作系统的特点及不足,通过对比,读者可以根据自己的应用需求选择合适的平台。
<strong>TOP1:μClinux</strong>
μClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP网络协议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。
RCC(Reset Clock Controller) —— 复位与时钟控制
<strong>一、复位</strong>
STM32F10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。
系统复位:除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器以外,系统
复位将复位所有寄存器至它们的复位状态。
电源复位:将复位除了备份区域外的所有寄存器。
在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,对于初学者来说,这几部分的内容很难理解。但是我个人觉得这几部分内容是单片机学习的重点,如果在一个学期的课堂学习或者自学中没有理解这几部分内容,那就等于还没有掌握51单片机,那更谈不上单片机的开发了,我们都知道在成品的单片机项目中,有很多是以这几部分为理论基础的,万年历是以定时器为主的,报警器是以中断为主的,联机通讯是以串口为主的。
计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定时器是单片机内部在晶振的触发下产生的脉冲。当他们的脉冲间隔相同的时候,计数器和定时器就是一个概念。
随着智能手机的发展,不管是看手机配置还是经常在生活中与网络中都经常听人有人讨论一些词。比如手机RAM多少或者ROM多少等等。可能大家都知道不管是ROM还是RAM越大越好,但对于ROM和RAM是什么意思以及两者之间的区别却不了解。
简单的说,一个完整的计算机系统是由软件和硬件组成的。其中,硬件部分由中央处理单元CPU(包括运算器和控制器)、存储器和输入/输出设备构成。目前个人电脑上使用的主板一般只能支持到1GB的内存,即使是INTEL目前最高阶的450NX芯片组也只能支持到4GB。
单片机的一个主要作用就是数据信息的处理,而在处理数据的过程中,需要一些“容器”来存放这些数据。这就好比烧饭要用到锅碗瓢盆一样。在这里,我们称这些“容器”为“存储器”。
<font color="#33b1c8"><strong>1、定时器同步</strong></font>
在MM32L073一个定时器有4 通道 PWM 输出,有客户在应用中需要使用两个定时器控制6路PWM输出,为了使两个定时器的PWM输出相同的波形,所以需要两个定时器实现同步功能。
所有 TIMx 定时器在内部相连,用于定时器同步或链接。当一个定时器处于主模式时,它可以对另一个处于从模式的定时器的计数器进行复位、启动、停止或提供时钟等操作。
<strong>总线空闲状态 </strong>
I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
AVCC:模拟部分电源供电;AGND:模拟地
DVCC:数字部分电源供电;DGND:数字地
这样区分是为了将数字部分和模拟部分隔离开,减小数字部分带给模拟电路部分的干扰。但这两部分不可能完全隔离开,数字部分和模拟部分之间是有连接的所以,在供电时至少地应该是在一起的,所以 AGND和DGND之间要用0欧姆的电阻或磁珠或电感连接起来,这样的一点连接就能够减小干扰。同样,如果两部分的供电电源相同也应该采用这样的接法。
在电子系统设计中,为了少走弯路和节省时间,应充分考虑并满足抗干扰性 的要求,避免在设计完成后再去进行抗干扰的补救措施。
<strong>形成干扰的基本要素有三个:</strong>
这里不说步进电机的 "细分" 实验,只说一下有关步进电机的基础概念以及步进电机的三种工作方式——单拍、双拍、单双拍,现在步进电机的编程一般都要用到专门的步进电机驱动芯片(如:L6219芯片),所以具体的编程下次再讲。先说一下相、线和极性。
<font color="#33b1c8"><strong>一:线、相、极性</strong></font>
"相" 就是说明步进电机有几个线圈(也叫做绕组)。
"线" 就是说明步进电机有几个接线口。
I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:
• 只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;
• 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;
• 它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;
• 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;
• 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。
<font color="#FD8900">Microchip Technology Inc.8位单片机产品部 主任应用工程师 Mark Pallones</font>
开关模式可调光LED驱动器凭借其高效性以及对LED电流的精确控制而闻名。这类LED驱动器还可以提供调光功能,使得最终用户在营造奇幻灯光效果的同时有效降低自身功耗。基于8位单片机(MCU)的解决方案可针对此类应用提供必要的模块,从而实现通信、定制和智能控制功能。
此外集成的独立于内核的外设,与纯模拟或ASIC实现相比可显著提升灵活性,扩展照明产品功能的同时塑造产品差异化,从而实现创新。这类智能照明解决方案具备故障预测和维护、能量监测,色温维持以及远程通信和控制等功能,功能之丰富不胜枚举,并且将因此而倍受青睐。
<strong>DSP:</strong>
DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。