LPC2387低功耗与电气特性深度解析:从数据手册到稳定设计

发布时间:2026/6/19 18:35:15

LPC2387低功耗与电气特性深度解析:从数据手册到稳定设计 1. 项目概述为什么我们需要深挖一颗“老将”的功耗与电气细节在嵌入式开发这个行当里选型就像给项目找搭档光看主频、内存、外设这些“硬指标”远远不够。尤其是对于电池供电或者对能耗有严苛要求的项目比如那些挂在野外三五年的环境监测节点、戴在手腕上的医疗设备或者藏在设备深处的智能传感器MCU的功耗表现和电气特性直接决定了产品的“续航生命”和长期运行的稳定性。很多工程师拿到芯片第一眼会去翻编程手册研究怎么让芯片“跑起来”却往往忽略了数据手册里那些关于“停下来”和“怎么动”的章节——也就是低功耗模式和动态电气特性。这恰恰是决定产品成败的隐形战场。今天咱们要掰开揉碎聊的是NXP LPC2000家族里的一位经典成员LPC2387。这是一颗基于ARM7TDMI-S内核的16/32位混合架构MCU虽然以今天的眼光看它的主频和性能不算突出但其扎实的模拟外设、丰富的通信接口以及经过市场长期验证的可靠性使其在工业控制、汽车电子、高端消费电子等领域依然占有一席之地。更重要的是对于许多成本敏感、功耗敏感且不需要复杂操作系统的应用深入理解这样一颗成熟芯片的“脾性”往往比盲目追求新款芯片更能做出稳定、高效的设计。数据手册里那些冷冰冰的图表和参数其实每一行都藏着设计者的意图和芯片的物理极限。比如Power-down模式和Deep power-down模式的电流差了几十甚至上百微安这微安级的差异在纽扣电池供电的场景下可能就是几个月甚至几年的续航差别。再比如I/O引脚在85°C高温下的输出驱动能力下降了多少ADC在不同温度下的绝对误差是否还在你的系统容限之内这些问题的答案都藏在电气特性表格和那些容易被忽略的曲线图里。我的经验是吃透这些细节不仅能让你在设计中避开大坑更能让你在调试时快速定位那些“玄学”问题——比如偶尔的数据采集偏差、通信间歇性失败其根源很可能就是电源或时序的边际效应。接下来的内容我会带你跳出数据手册的罗列式描述以一个实际设计者的视角重新解读LPC2387的低功耗管理与电气特性。我们会探讨这些参数背后的工程意义分享如何根据这些数据来规划电源树、设计外围电路以及在实际编程中需要注意的那些“坑”。无论你是正在评估这颗芯片还是已经用它做项目遇到了难题相信这些从一线项目中沉淀下来的经验都能给你带来实实在在的启发。2. 低功耗模式深度解析不仅仅是“关机”那么简单提到低功耗很多工程师的第一反应就是让MCU“睡觉”。但LPC2387提供的可不是简单的“睡着”而是有层次、有策略的“休眠方案”。理解每种模式关闭了哪些模块、保留了哪些功能、唤醒源是什么以及最关键的实际电流消耗是进行低功耗设计的基石。2.1 Power-down模式保持记忆的浅睡眠Power-down模式我习惯称之为“浅睡眠”模式。在这个模式下内核时钟包括ARM7内核和所有外设的时钟会停止但芯片的电源域并没有完全关闭。这意味着什么意味着所有芯片寄存器和SRAM中的内容都会得到保持。这对于需要快速唤醒并恢复现场的应用至关重要。根据数据手册的图表Figure 4在3.3V供电、25°C室温下I/O口的最大静态电流IDD(IO)典型值非常低。但这里有个关键点容易被忽略这个电流是最大值Max。在实际应用中如果所有I/O引脚都配置为高阻输入或模拟输入且没有外部电路拉电流实际电流通常会远低于这个最大值。我实测过在精心配置I/O状态后整个芯片的IDD(IO)可以控制在几个微安以内。另一个重点是RTC电池供电电流IBATFigure 5。当主电源VDD(3V3)掉电仅由VBAT引脚给实时时钟RTC和电池备份RAM供电时这个电流参数决定了你的纽扣电池能撑多久。图表显示在-40°C到85°C的全温范围内IBAT的变化相对平缓。但在设计时你必须考虑最坏情况通常是高温下的最大值并以此来计算备份电源的容量。例如如果一颗CR2032纽扣电池的典型容量是220mAh在最大IBAT为XX微安需查表的情况下理论续航时间可以用“容量(mAh) / 电流(mA)”来粗略估算但这还没算上电池的自放电。我的经验是这个理论值至少要打七折来作为设计余量。实操心得进入Power-down前的“打扫”工作让芯片进入低功耗模式前一定要像出门前检查水电煤气一样检查所有外设和I/O口的状态。错误的配置会让芯片“睡不安稳”功耗下不来。关闭所有外设时钟通过PCONP外设功率控制寄存器关闭所有暂时不用的外设模块如UART、SPI、定时器的时钟。时钟树停了动态功耗才真正降下来。配置好I/O口将未使用的I/O引脚设置为复位后的默认状态通常是带上拉电阻的输入模式或者根据外部电路情况设置为明确的输出高/低电平。悬空的输入引脚会因为内部MOS管的亚阈值漏电而消耗额外电流。处理中断唤醒源明确你打算用哪个或哪几个外部中断EINT或RTC闹钟来唤醒芯片并提前配置好相应的中断向量和优先级。进入低功耗后只有这些使能的中断源才能唤醒系统。2.2 Deep Power-down模式最深度的冬眠如果说Power-down是浅睡眠那么Deep power-down模式就是“冬眠”或者“关机但保留呼吸”。这是LPC2387所能达到的最低功耗状态。在此模式下除了一个极低功耗的唤醒逻辑电路和RTC如果使能之外芯片内部几乎所有电路都被断电包括内核、所有外设、内部SRAM和寄存器。因此唤醒后程序需要从复位向量开始重新执行所有变量都需要重新初始化。看看数据手册Figure 7和Figure 9的曲线你会直观地看到Deep power-down模式下的电流IDD(DCDC)dpd(3V3)和IDD(IO)比Power-down模式又降低了一个数量级。这个电流值已经小到需要你用高精度的微安表甚至纳安表才能准确测量。对于用太阳能电池或能量收集技术供电的“永久性”设备这个模式是终极法宝。但是天下没有免费的午餐。Deep power-down的代价是数据丢失芯片内部SRAM和寄存器内容全部丢失。如果你的应用场景需要保存一些状态数据必须在进入此模式前将这些数据存放到片内Flash的特定区域需注意Flash擦写寿命或者存放到由VBAT独立供电的电池备份RAM中如果芯片支持。唤醒等于复位唤醒后MCU从复位开始执行相当于一次冷启动。你的启动代码Bootloader需要能够判断这次复位是上电复位还是Deep power-down唤醒复位通常可以通过特定的GPIO状态或备份寄存器实现从而决定是跳转到应用程序还是进行数据恢复。唤醒时间更长从Deep power-down唤醒需要等待内部振荡器重新起振、PLL锁定、电压稳定这个时间远比从Power-down模式唤醒要长通常是毫秒级甚至更长。在设计响应时间要求苛刻的系统时必须把这个延迟考虑进去。避坑指南Deep Power-down的唤醒陷阱我曾在一個氣體傳感器項目中踩過一個大坑。設計使用外部按鍵中斷從Deep power-down喚醒。理論上沒問題但實際發現有時按鍵喚醒後程序跑飛。排查後發現問題出在按鍵的硬件消抖電路上。當按鍵按下時由於MCU處於完全掉電狀態其I/O引腳的內部上拉電阻也失效了。外部電路如果設計不當例如上拉電阻過大可能會導致喚醒信號邊沿過於緩慢不符合時序要求從而引起喚醒不穩定。解決方案對於從Deep power-down模式喚醒的外部信號必須確保其在MCU完全無電的情況下依然能提供一個乾淨、快速的邊沿。可以考慮使用專用的低功耗電壓監控芯片或看門狗芯片來產生復位/喚醒信號。在外部喚醒電路中增加一個由VBAT供電的斯密特觸發器來整形信號。如果條件允許優先使用RTC鬧鐘定時喚醒這是最可靠的方式。2.3 模式选择策略在性能、功耗与复杂度间权衡了解了两种模式的区别我们该如何选择这没有标准答案完全取决于你的应用场景。我通常会画一个简单的决策流程图来帮助选择是否需要保持运行现场寄存器、内存数据是- 只能选择Power-down模式。否- 进入下一步判断。对功耗的极致程度要求如何唤醒后能否接受完整的复位初始化过程要求極致功耗且初始化時間可接受- 優先選擇Deep power-down模式。功耗要求高但需要快速恢復運行- 選擇Power-down模式。唤醒源是什么仅RTC定时唤醒- 两种模式均可Deep power-down更省电。需要外部中断唤醒- 需仔细评估外部电路在Deep power-down下的可靠性Power-down模式更稳妥。在实际项目中更常见的策略是混合使用。例如一个数据记录仪大部分时间用Deep power-down模式每小时被RTC唤醒一次进入Power-down模式进行快速的数据采集和处理处理完毕后再进入Deep power-down。这样既保证了超长的待机时间又满足了数据处理的实时性要求。3. 关键电气特性解读从参数到设计的桥梁数据手册中“Electrical Characteristics”和“Dynamic Characteristics”章节里的表格是连接芯片理论性能和实际电路的桥梁。这些数字不是用来背诵的而是用来计算和验证的。3.1 静态引脚特性驱动能力与电平门槛Figure 10和Figure 11的曲线图非常直观地展示了I/O引脚的驱动能力。我们以3.3V供电、25°C的典型曲线为例输出高电平VOH从曲线可以看出当输出电流IOH即芯片向外“吐”电流增大时输出高电平的电压会下降。这是因为芯片内部的PMOS管有导通电阻。数据手册会给出一个标准测试条件比如在IOH -4 mA时VOH的最小值Min。如果你的负载需要更大的拉电流就必须查这张图确保在最大负载电流下VOH仍然高于后级电路识别高电平的最小门限比如CMOS电路是0.7 * VDD约2.31V。如果不够就需要增加外部上拉电阻或缓冲器。输出低电平VOL当输出电流IOL即芯片向內“吸”电流增大时输出低电平的电压会上升。同样你需要确保在最重的灌电流负载下VOL仍然低于后级电路识别低电平的最大门限比如0.3 * VDD约0.99V。计算实例假设你用LPC2387的一个GPIO口直接驱动一个LEDLED正向压降为2.0V串联一个限流电阻R到3.3V电源。当GPIO输出低电平时LED点亮。设定目标电流I_led 5mA对于普通LED足够亮且安全。当GPIO输出低电平时其引脚电压为VOL。从Figure 11估计在5mA时VOL大约为0.15V25°C。那么限流电阻R两端的电压为V_R VDD - V_led - VOL 3.3V - 2.0V - 0.15V 1.15V。因此R V_R / I_led 1.15V / 5mA 230欧姆。选择最接近的标准值220欧姆或240欧姆。关键检查计算此时GPIO的实际灌电流I_OL_actual (3.3V - 2.0V - VOL) / R。代入R220ΩVOL≈0.15V得到I_OL_actual ≈ 5.2mA。再回头查Figure 11在5.2mA下VOL是否仍远低于0.8VTTL低电平门限是的曲线显示仍然很低设计成立。同时还要确认该GPIO引脚的最大绝对灌电流能力数据手册会给出如20mA5.2mA远小于此值安全。3.2 动态特性时序是通信的命脉动态特性决定了芯片能跑多快以及和外设通信是否稳定。Table 8 “Dynamic characteristics” 是核心。外部时钟fosc最大25MHz**Tcy(clk)**最小40ns。这意味着如果你外接一个25MHz的有源晶振那么时钟的高电平和低电平时间tCHCX,tCLCX至少要达到40ns * 0.4 16ns。而时钟的上升/下降时间tCLCH,tCHCL必须小于5ns。如果你的时钟源边沿过于缓慢可能导致内部触发器采样错误系统不稳定。I2C总线tf(o)输出下降时间的公式20 0.1 * Cbns其中Cb是总线电容。这是一个非常重要的设计公式。它告诉你I2C总线的速度受限于总线电容。例如如果你的PCB走线较长、连接设备较多导致总线电容Cb达到200pF那么下降时间就是20 0.1*200 40ns。这会影响I2C能够可靠工作的最高频率。在设计高速I2C如400kHz Fast-mode时必须严格控制总线布局减小寄生电容。SSP/SPI接口tsu(SPI_MISO)MISO数据建立时间典型值11ns。这个参数决定了在SPI主机模式下从设备的数据必须在SCK采样边沿到来之前至少11ns就保持稳定。当你为LPC2387选择SPI从设备如Flash、传感器时必须查看该从设备的数据输出延迟tV参数确保其满足主控的建立时间要求。不满足就需要降低SPI时钟频率。3.3 ADC/DAC精度模拟世界的数字映射对于需要采集模拟信号的应用ADC和DAC的精度指标是灵魂。ADC误差分析Table 13 LPC2387的ADC是10位分辨率。其误差主要由以下几部分构成偏移误差EO±3 LSB。这意味着即使输入电压为0VADC转换结果也可能在-3到3个数字码之间波动。这个误差是固定的可以通过软件校准来消除测量一个已知的零输入电压或接近零的电压的转换值将其作为偏移量存储后续所有转换结果减去这个偏移量。增益误差EG±0.5%。当输入满量程电压时转换结果与理想值的比例偏差。例如理想情况下3.3V满量程应对应1023。0.5%的增益误差意味着实际值可能在1018到1028之间。这也需要通过两点校准测量零点和满点来修正。微分非线性ED和积分非线性EL(adj)这些是非线性误差无法通过简单的线性校准完全消除。±1 LSB的微分非线性意味着每个码的宽度可能不一致但不会丢码保证单调性。±2 LSB的积分非线性决定了ADC传输曲线与理想直线的最大偏差。总绝对误差ET±4 LSB。这是最坏情况下的总误差包含了偏移、增益和非线性。在3.3V参考电压下1 LSB 3.3V / 1024 ≈ 3.22mV。因此最坏情况下的绝对误差可达±12.88mV。在设计传感器电路时如果你的信号变化范围很小例如几十毫伏这个误差可能不可接受你需要考虑使用外部更高精度的ADC或者对信号进行放大使有效信号占据更多的ADC量程。DAC特性Table 14其误差分析与ADC类似。需要注意的是负载能力CL≤ 200pF,RL≥ 1kΩ。如果你需要用DAC输出直接驱动重负载如低阻抗耳机必须加入运算放大器进行缓冲。设计技巧优化ADC采样精度数据手册Figure 16给出了ADC输入接口的推荐电路其中的Rvsi电压源接口电阻最大40kΩ这其实暗示了ADC采样保持电路对输入信号源内阻的要求。原理ADC在采样阶段需要在一个很短的时间窗口内几个ADC时钟周期通过内部开关对内部的采样电容充电。如果信号源内阻太大电容充电就会变慢导致采样结束时电压未稳定引入误差。对策如果信号来自高输出阻抗的传感器如热电偶、某些pH电极必须在ADC引脚前加入一个电压跟随器运算放大器构成利用运放的低输出阻抗来驱动ADC。如果信号变化缓慢如温度可以在ADC输入引脚对地加一个小电容如0.1μF与信号源内阻构成低通滤波并能在采样瞬间提供电荷。但电容不宜过大否则会影响对快速变化信号的响应。适当降低ADC的时钟频率在满足采样率的前提下可以延长采样时间允许更高内阻的信号源。4. 应用电路设计精要从原理图到可靠运行数据手册第14章“Application information”是精华中的精华它把前面所有的电气参数转化为了具体的电路设计指导。这里我挑几个最容易出问题的地方展开讲。4.1 时钟电路设计系统的心跳时钟是系统稳定性的基石。LPC2387支持外部晶体振荡器4-25MHz和内部RC振荡器~4MHz。对于需要高精度定时或通信如UART波特率、USB的应用必须使用外部晶体。晶体选择与负载电容匹配Table 15, 16 这是最容易犯错的地方。图23的模型清晰地表明晶体两端需要接的负载电容CX1和CX2其值并非随意选择而是由你选用的晶体本身的负载电容CL参数决定的。芯片内部已有寄生电容CP通常几皮法PCB走线也有寄生电容。 简化计算公式为CL ≈ ( (CX1 * CX2) / (CX1 CX2) ) Cstray其中Cstray是引脚和走线的寄生电容通常估计为3-5pF。 数据手册的表格已经帮你计算好了常见CL值对应的CX1/CX2。例如你选择一个CL10pF的12MHz晶体那么CX1和CX2都应选择18pF。如果你错误地选择了33pF的电容会导致振荡频率偏移甚至无法起振。PCB布局要点第14.4节最短走线晶体和两个负载电容必须尽可能靠近芯片的XTAL1和XTAL2引脚放置。地平面包围在晶体下方铺一个完整的地平面并将负载电容的接地端直接通过过孔连接到这个地平面。这可以为振荡回路提供干净的参考地并屏蔽噪声干扰。远离噪声源时钟电路应远离开关电源、电机驱动、高速数字信号线等噪声源。4.2 复位电路设计稳定的起跑线图26展示了复位引脚内部结构。它内部有一个上拉电阻Rpu和一个20ns的RC毛刺滤波器。这意味着对于大多数应用你不需要在外部再额外添加一个上拉电阻。复位引脚对短于20ns的负向毛刺脉冲不敏感这提高了抗干扰能力。你需要确保外部复位电路如手动复位按钮、电源监控芯片产生的复位脉冲宽度足够长以覆盖这个滤波时间并满足芯片要求的最小复位脉宽数据手册会给出通常几十微秒。一个可靠的复位电路通常由以下几部分构成上电复位依靠电源的上升速度通过芯片内部的BODBrown-Out Detection欠压检测模块实现。LPC2387的BOD可以配置不同的跳变点如2.6V, 2.9V等当VDD低于此阈值时产生复位。务必在程序中使能你需要的BOD级别。手动复位一个简单的RC电路如10kΩ上拉0.1μF电容对地加一个按钮到地即可。按下按钮将复位引脚拉低。看门狗复位利用芯片内部的看门狗定时器在程序跑飞时产生复位。4.3 USB接口电路细节决定成败LPC2387集成了USB 2.0全速设备控制器图17、18、21分别给出了自供电设备、总线供电设备和USB设备端口的参考设计。这里有几个关键点SoftConnect软连接这是一个通过软件控制内部1.5kΩ上拉电阻连接在D和3.3V之间的功能。它的妙处在于允许你的MCU在完全初始化好USB协议栈、配置好描述符之后再通过软件“连接”到USB总线。避免了MCU还没准备好就匆忙应答主机枚举请求而导致的失败。在原理图上USB_CONNECT引脚通常连接一个LED指示灯直观显示连接状态。串联电阻RS 33ΩD和D-信号线上串联的33Ω电阻用于阻抗匹配减弱信号反射对保证USB信号完整性至关重要。必须使用精度1%的电阻并尽可能靠近芯片引脚放置。VBUS检测对于自供电设备图17VBUS引脚可以用来检测USB主机是否连接。当VBUS上有5V电压时可以触发中断通知MCU准备进行USB通信。这个检测电路通常需要一个分压电阻将5V降到3.3V以下再接入MCU的GPIO。5. 低功耗系统设计实战与调试心得理论最终要服务于实践。结合LPC2387的特性我们来规划一个典型的低功耗数据采集系统的电源和软件框架。5.1 系统电源架构设计假设我们设计一个由3.6V锂亚电池供电的无线温湿度传感器节点。系统每5分钟唤醒一次采集数据并通过LoRa发送然后继续休眠。主电源路径电池 - 低压差线性稳压器LDO - 产生3.3V的VDD(3V3)供给LPC2387核心、I/O及大部分外设。LDO的选择至关重要其自身的静态电流Quiescent Current, Iq必须极低最好1μA否则它在MCU休眠时消耗的电流可能比MCU本身还大。备份电源路径电池 - 一个简单的二极管或MOSFET隔离电路 -VBAT引脚。此路径仅用于在VDD(3V3)掉电或系统进入Deep power-down时为RTC和电池备份RAM供电。这里可以使用一颗小容量的可充电纽扣电池如ML系列作为备份主电池通过一个限流电阻为其涓流充电。外围传感器电源管理温湿度传感器、LoRa模块的电源不应直接接在常开的3.3V上。应使用MCU的一个GPIO口控制一个MOSFET开关仅在需要工作时才为其供电。这样在MCU休眠时这些功耗大户可以完全断电。5.2 软件低功耗流程// 伪代码示例低功耗任务调度框架 int main(void) { SystemInit(); // 系统初始化时钟、GPIO、外设等 RTC_Init(); // 初始化RTC设置5分钟闹钟 BackupRAM_Init(); // 初始化备份RAM用于存储唤醒计数等 while (1) { // 1. 执行工作任务 PowerOn_Sensor_and_LoRa(); // GPIO控制打开传感器和LoRa电源 Delay_ms(10); // 等待电源稳定 float data Read_Sensor(); Send_Data_via_LoRa(data); PowerOff_Sensor_and_LoRa(); // 关闭外围电源 // 2. 进入低功耗前准备 Save_Context_to_BackupRAM(); // 如有需要保存状态到备份RAM Configure_All_GPIOs_for_LowPower(); // 配置所有IO为低功耗状态 Disable_Peripheral_Clocks(); // 关闭所有外设时钟 Clear_Pending_Interrupts(); // 清除可能挂起的中断标志 // 3. 进入低功耗模式 // 此处根据需求选择模式 if (Need_DeepSleep) { // 设置唤醒源如RTC闹钟、EINT0 Set_Wakeup_Source_DEEP_PWR_DOWN(); Enter_Deep_Powerdown_Mode(); // 调用库函数或操作寄存器 // 唤醒后从这里开始相当于冷启动需要重新初始化 SystemInit(); Restore_Context_from_BackupRAM(); } else { // 设置唤醒源 Set_Wakeup_Source_PWR_DOWN(); Enter_Powerdown_Mode(); // 调用库函数或操作寄存器 // 唤醒后直接继续执行下一条指令 } // 4. 唤醒后处理 Handle_Wakeup_Event(); // 判断是哪个唤醒源进行相应处理 // 循环回到while(1)开始执行下一次任务 } }5.3 实测功耗分析与优化理论计算和实际测量往往有差距。你必须用电流表最好是能测uA级静态电流的实际测量系统在不同模式下的功耗。测量方法在电池和系统电源输入端串联一个精密采样电阻如10Ω。用示波器或高精度万用表测量电阻两端的电压差换算成电流。分别测量系统在运行模式全速运行、空闲模式、Power-down模式和Deep power-down模式下的电流。常见问题与优化问题实测Power-down电流比数据手册典型值高一个数量级。排查检查未使用的GPIO是否配置成了输出且驱动了外部负载或者配置成了输入但外部浮空将其设置为带上拉的输入模式。检查模拟引脚如果ADC引脚悬空可能会引入漏电。将其配置为模拟输入模式或者如果不用ADC可以将其配置为数字输出低电平。检查外围电路是否有LED、电平转换芯片等外围器件直接从MCU的GPIO取电即使在休眠时也在消耗电流确保所有外围模块的电源可由MCU完全切断。检查内部外设通过PCONP寄存器确认所有不用的外设如UART1, SPI1, PWM等的时钟都已关闭。问题从Deep power-down唤醒后程序运行不正常。排查检查复位电路用示波器观察复位引脚在唤醒瞬间的波形是否干净、稳定是否有毛刺检查电源稳定性唤醒瞬间由于内部DC-DC转换器和PLL启动电源可能会有瞬间跌落。在VDD引脚靠近芯片处增加一个10-100μF的钽电容或低ESR的陶瓷电容。检查启动代码确认启动代码startup.s, system_LPC23xx.c是否正确初始化了堆栈、时钟特别是PLL设置。Deep power-down唤醒后的初始化序列应与冷启动完全一致。6. 总结老芯片的新生命LPC2387作为一款经典的ARM7 MCU其丰富的文档、稳定的性能和成熟的生态依然是许多对成本、功耗和可靠性有苛刻要求的项目的优秀选择。通过深入剖析其数据手册中关于低功耗和电气特性的部分我们不仅仅是在看参数更是在理解芯片设计者的思路和物理世界的约束。低功耗设计是一个系统工程它贯穿了芯片选型、电源架构、电路设计、PCB布局、软件架构和调试测量的每一个环节。数据手册是你的地图而实际测量和调试则是你的指南针。记住没有一劳永逸的配置最好的低功耗方案永远是针对你的具体应用场景经过反复测量和优化后得到的。最后分享一个个人体会在资源受限的嵌入式开发中“简单即可靠”这条法则尤其适用。在满足功能的前提下优先使用芯片内部的模块如RTC、看门狗减少外部器件优先使用成熟的软件库和简洁的架构避免复杂的动态内存分配和任务调度。对于LPC2387这样的芯片有时一个精心编写的、基于中断和状态机的裸机程序比勉强移植一个RTOS来得更高效、更稳定功耗也更低。技术的选择终究要回归到项目最本质的需求上来。

相关新闻