这是描述信息

光伏自组无线网wifi模组乐鑫esp8266芯片官网电源管理低功耗调试

光伏自组无线网wifi模组乐鑫esp8266芯片官网电源管理低功耗调试

光伏自组无线网wifi模组乐鑫esp8266芯片官网电源管理低功耗调试

光伏自组无线网wifi模组乐鑫esp8266芯片官网电源管理低功耗调试

光伏自组无线网wifi模组乐鑫esp8266芯片官网电源管理低功耗调试

光伏自组无线网wifi模组乐鑫esp8266芯片官网电源管理低功耗调试,在产品中使用电源管理和低功耗模式后,若通过实际测量,发现在一些时间段里面,功耗始终很高,则可以排查以下几种可能 (包括但不限于下面的几种可能):
(1)Wi-Fi正在接收数据或者 Bluetooth LE 正在接收数据。
(2)应用程序长时间获取电源管理锁,未释放电源管理锁。
(3)应用程序中存在阻塞现象,并且不是使用操作系统API所导致的阻塞现象。
(4)应用程序中有周期非常小的定时器或者非常频繁地触发中断。


当遇到长时间高功耗的情况时,需要分析是什么原因导致的,并针对其进行优化。光伏自组无线网wifi模组乐鑫esp8266芯片官网具体的调试方式可以采用日志调试和GPIO调试,针对 W-Fi和 Bluetooth LE,还可以通过抓取空中包进行分析调试。调试过程可能会反复进行,终满足实际产品要求。


下面将介绍在低功耗优化调试中常用的日志调试和 GPIO 调试两种方式,在进行调试时通常还会结合实时功耗数据进行分析。


日志调试
通过日志调试,需要在 menuconfig 中配置 CONEIG_PM_PROEILING,之后将跟踪每个电源管理锁的保留时间,esp_pm_dump_locks(EILE* stream)函数将打印这些信息。通过日志调试,光伏自组无线网wifi模组乐鑫esp8266芯片官网可以分析哪些电源管理锁阻止芯片进入低功耗状态,并可查看芯片在每种功耗模式中花费的时间。完成调试后,需要在menuconfig 中关闭CONEIG PM PROEILING。配置 CONEIG_PM_PROFILING 需要运行 idf.py menuconfig 命令打开配置工具,在Component config --> Power Management 下配置Enable profiling counters for PM locks 即可。


在应用程序进行自动进入 Light-sleep 模式调试时,光伏自组无线网wifi模组乐鑫esp8266芯片官网需要周期性地调用esp_pm_dump_locks(FILE* stream)函数来打印调试信息,用于分析导致功耗升高的原因。下面提供了部分日志调试的信息:
Time: 11879660
Lock stats:
Name tyoe arg cnt times time percentage
Wifi APB_FREQ_MAX 0 0 107 1826662 16%
Bt APB_FREQ_MAX 0 1 126 5367607 46%
Rtos0 cpu_FREQ_MAX 0 1 8185 809685 7%
Mode stats:
Name HZ time percentage
SLEEP 40M 4252037 35%
APB_MIN 40M 0 0%
APB_MAX 80M 6303881 53%
CPU_MAX 160M 823595 6%


esp_pm_dump_locks(FILE* stream)函数会打印两种类型的调试信息,在 Lock stats中列举了应用程序使用的所有电源管理锁的实时状态。每一行中的内容分别是:名称(name)电源管理锁类型 (type)、参数 (arg)、当前获取该电源管理锁的次数 (cnt)、获取该电源管理锁总次数(times)、获取该电源管理锁的总时间(time)、获取该电源管理锁的时间占比(percentage)。光伏自组无线网wifi模组乐鑫esp8266芯片官网在 Mode stats 中列举了应用程序中不同的模式的实时状态。每一行中的内容分别是:模式名称 (name)、时钟频率 (HZ)、该模式下的总时间 (time)、该模式的时间占比 (percentage)。


通过上面的描述可以看出,上述日志中类型为APB_FREQ_MAX的 wifi 电源管理锁被获取的总时间为 1826662 s,总共获取了 107 次,当前没有获取,时间占比为16%;类型为CPU_FREQ_MAX的 rtos0 电源管理锁被获取的总时间为 809685 s,总共获取了 8185次,当前获取一次,时间占比为 7%;在Sleep 模式下,时钟频率为40 MHZ,处于该模式下的总时间为4252037Hs,时间占比35%。由此类推,即可知道每个电源管理锁的状态和功耗模式的状态。


GPIO调试
采用GPIO调试方式时,需要在 menuconfig 中配置CONFIG_PM_TRACE 选项。光伏自组无线网wifi模组乐鑫esp8266芯片官网如果配置了该选项,某些GPIO将用于发送RTOS 滴答、频率切换、进入/退出空闲状态等事件的信号有关GPIO列表,请参阅pm trace.c文件。此功能旨在分析/调试电源管理实现的行为时使用,在完成调试后应用程序中应该保持禁用状态。


相关GPIO如下所示,每个事件分别有两个GPIO,对应CPUO和CPU1。由于 ESP32-C3是单核芯片,所以在进行调试时只关注第一列的 GPIO。在开发时,也可以通过修改源码的方式修改所使用的GPIO。在进行调试前,将相应的 GPIO 连接到逻辑分析仪或示波器等仪器。


1./*GPIOs to use for tracing of esp pm events.
2.*Two entries in the array for each type, one for each CPU.
3.*Feel free to change when debugging.
4.*/
5.static const int DRAM ATTR s trace io[]={
6.#ifndef CONFIG_IDF_TARGET_ESP32C3
7.BIT(4),BIT(5),//ESP_PM_ TRACE_IDLE
8.BIT(16),BIT(17),//ESP_PM_TRACE_TICK
9.BIT(18),BIT(18),//ESP_PM_TRACE_FREQ_SWITCH
10.BIT(19),BIT(19),//ESP_PM_TRACE_CCOMPARE_UPDATE
11.BIT(25),BIT(26),//ESP_PM_TRACE_ISR_HOOK
12.BIT(27),BIT(27),//ESP_PM_TRACE_SLEEP
13.#else
14.BIT(2), BIT(3),//ESP_PM_TRACE_IDLE
15.BIT(4), BIT(5),//ESP_PM_TRACE_TICK
16.BIT(6), BIT(6),//ESP_PM_TRACE_FREQ_SWITCH
17.BIT(7), BIT(7),//ESP_PM_TRACE_CCOMPARE_UPDATE
18.BIT(8), BIT(9),//ESP_PM_TRACE_ISR_HOOK
19.BIT(18),BIT(18),//ESP_PM_TRACE_SLEEP
20.#endif
21.};


配置 CONEIG_PM_PROFILING 需要运行 idf.py menuconfig 命令打开配置工具,在Component config --> Power Management 下配置Enable debug tracing of PM using GPIOs 即可。


在完成上述操作后,就可以开始调试了。光伏自组无线网wifi模组乐鑫esp8266芯片官网通过观察不同的 GPIO状态,可以了解当前 CPU所处的状态和相应的功耗模式,从而可以进一步了解哪些模式消耗的功耗多,还可以判断是否能进行功耗优化。

uA级别智能门锁低功耗雷达模块让门锁更加智能省电节约功耗,指纹门锁并不是什么新鲜事,我相信每个人都很熟悉。随着近年来智能家居的逐步普及,指纹门锁也进入了成千上万的家庭。今天的功耗雷达模块指纹门锁不仅消除了繁琐的钥匙,而且还提供了各种智能功能,uA级别智能门锁低功耗雷达模块用在智能门锁上,可以实现门锁的智能感应屏幕,使电池寿命延长3-5倍,如与其他智能家居连接,成为智能场景的开关。所以今天的指纹门锁更被称为智能门锁。 今天,让我们来谈谈功耗雷达模块智能门锁的安全性。希望能让更多想知道智能门锁的朋友认识下。 指纹识别是智能门锁的核心 指纹识别技术在我们的智能手机上随处可见。从以前的实体指纹识别到屏幕下的指纹识别,可以说指纹识别技术已经相当成熟。指纹识别可以说是整个uA级低功耗雷达模块智能门锁的核心。 目前主要有三种常见的指纹识别方法,即光学指纹识别、半导体指纹识别和超声指纹识别。 光学指纹识别 让我们先谈谈光学指纹识别的原理实际上是光的反射。我们都知道指纹本身是不均匀的。当光照射到我们的指纹上时,它会反射,光接收器可以通过接收反射的光来绘制我们的指纹。就像激光雷达测绘一样。 光学指纹识别通常出现在打卡机上,手机上的屏幕指纹识别技术也使用光学指纹识别。今天的光学指纹识别已经达到了非常快的识别速度。 然而,光学指纹识别有一个缺点,即硬件上的活体识别无法实现,容易被指模破解。通常,活体识别是通过软件算法进行的。如果算法处理不当,很容易翻车。 此外,光学指纹识别也容易受到液体的影响,湿手解锁的成功率也会下降。 超声指纹识别 超声指纹识别也被称为射频指纹识别,其原理与光学类型相似,但超声波使用声波反射,实际上是声纳的缩小版本。因为使用声波,不要担心水折射会降低识别率,所以超声指纹识别可以湿手解锁。然而,超声指纹识别在防破解方面与光学类型一样,不能实现硬件,可以被指模破解,活体识别仍然依赖于算法。 半导体指纹识别 半导体指纹识别主要采用电容、电场(即我们所说的电感)、温度和压力原理来实现指纹图像的收集。当用户将手指放在前面时,皮肤形成电容阵列的极板,电容阵列的背面是绝缘极板。由于不同区域指纹的脊柱与谷物之间的距离也不同,因此每个单元的电容量随之变化,从而获得指纹图像。半导体指纹识别具有价格低、体积小、识别率高的优点,因此大多数uA级低功耗雷达模块智能门锁都采用了这种方案。半导体指纹识别的另一个功能是活体识别。传统的硅胶指模无法破解。 当然,这并不意味着半导体可以百分识别活体。所谓的半导体指纹识别活体检测不使用指纹活体体征。本质上,它取决于皮肤的材料特性,这意味着虽然传统的硅胶指模无法破解。 一般来说,无论哪种指纹识别,都有可能被破解,只是说破解的水平。然而,今天的指纹识别,无论是硬件生活识别还是算法生活识别,都相对成熟,很难破解。毕竟,都可以通过支付级别的认证,大大保证安全。 目前,市场上大多数智能门锁仍将保留钥匙孔。除了指纹解锁外,用户还可以用传统钥匙开门。留下钥匙孔的主要目的是在指纹识别故障或智能门锁耗尽时仍有开门的方法。但由于有钥匙孔,它表明它可以通过技术手段解锁。 目前市场上的锁等级可分为A、B、C三个等级,这三个等级主要是通过防暴开锁和防技术开锁的程度来区分的。A级锁要求技术解锁时间不少于1分钟,B级锁要求不少于5分钟。即使是高级别的C级锁也只要求技术解锁时间不少于10分钟。 也就是说,现在市场上大多数门锁,无论是什么级别,在专业的解锁大师面前都糊,只不过是时间长短。 安全是重要的,是否安全增加了人们对uA级别低功耗雷达模块智能门锁安全的担忧。事实上,现在到处都是摄像头,强大的人脸识别,以及移动支付的出现,使家庭现金减少,所有这些都使得入室盗窃的成本急剧上升,近年来各省市的入室盗窃几乎呈悬崖状下降。 换句话说,无论锁有多安全,无论锁有多难打开,都可能比在门口安装摄像头更具威慑力。 因此,担心uA级别低功耗雷达模块智能门锁是否不安全可能意义不大。毕竟,家里的防盗锁可能不安全。我们应该更加关注门锁能给我们带来多少便利。 我们要考虑的是智能门锁的兼容性和通用性。毕竟,智能门锁近年来才流行起来。大多数人在后期将普通机械门锁升级为智能门锁。因此,智能门锁能否与原门兼容是非常重要的。如果不兼容,发现无法安装是一件非常麻烦的事情。 uA级别低功耗雷达模块智能门锁主要是为了避免带钥匙的麻烦。因此,智能门锁的便利性尤为重要。便利性主要体现在指纹的识别率上。手指受伤导致指纹磨损或老年人指纹较浅。智能门锁能否识别是非常重要的。 当然,如果指纹真的失效,是否有其他解锁方案,如密码解锁或NFC解锁。还需要注意密码解锁是否有虚假密码等防窥镜措施。 当然,智能门锁的耐久性也是一个需要特别注意的地方。uA级别低功耗雷达模块智能门锁主要依靠内部电池供电,这就要求智能门锁的耐久性尽可能好,否则经常充电或更换电池会非常麻烦。
微波雷达传感器雷达感应浴室镜上的应用,如今,家用电器的智能化已成为一种常态,越来越多的人开始在自己的浴室里安装智能浴室镜。但是还有很多人对智能浴镜的理解还不够深入,今天就来说说这个话题。 什么是智能浴室镜?智慧型浴室镜,顾名思义,就是卫浴镜子智能化升级,入门级产品基本具备了彩灯和镜面触摸功能,更高档次的产品安装有微波雷达传感器智能感应,当感应到有人接近到一定距离即可开启亮灯或者亮屏操作,也可三色无极调,智能除雾,语音交互,日程安排备忘,甚至在镜子上看电视,听音乐,气象预报,问题查询,智能控制,健康管理等。 智能化雷达感应浴室镜与普通镜的区别,为什么要选TA?,就功能而言,普通浴镜价格用它没有什么压力!而且雷达感应智能浴镜会让人犹豫不决是否“值得一看”。就功能和应用而言,普通浴镜功能单一,而微波雷达传感器智能浴室镜功能创新:镜子灯光色温和亮度可以自由调节,镜面还可以湿手触控,智能除雾,既环保又健康! 尽管智能浴镜比较新颖,但功能丰富,体验感更好,特别是入门级的智能浴镜,具有基础智能化功能,真的适合想体验下智能化的小伙伴们。 给卫生间安装微波雷达传感器浴室镜安装注意什么? ①确定智能浴室镜的安装位置,因为是安装时在墙壁上打孔,一旦安装后一般无法移动位置。 ②在选购雷达感应智能浴室镜时,根据安装位置确定镜子的形状和尺寸。 ③确定智能浴镜的安装位置后,在布线时为镜子预留好电源线。 ④确定微波雷达传感器智能浴镜的安装高度,一般智能浴镜的标准安装高度约85cm(从地砖到镜子底),具体安装高度要根据家庭成员的身高及使用习惯来决定。 ⑤镜面遇到污渍,可用酒精或30%清洁稀释液擦洗,平时可用干毛巾养护,注意多通风。
冰箱屏幕唤醒微波雷达传感器屏幕唤醒性能强悍智能感应,随着年轻一代消费观念的转变,冰箱作为厨房和客厅的核心家用电器之一,也升级为健康、智能、高端的形象。在新产品发布会上,推出了大屏幕的冰箱,不仅屏幕优秀,而且微波雷达传感器屏幕唤醒性能强大。 大屏智能互联,听歌看剧购物新体验 冰箱植入冰箱屏幕唤醒微波雷达传感器触摸屏,重新定义了冰箱的核心价值。除了冰箱的保鲜功能外,该显示屏还集控制中心、娱乐中心和购物中心于一体,让您在无聊的烹饪过程中不会落后于听歌、看剧和购物。新的烹饪体验是前所未有的。 不仅如此,21.5英寸的屏幕也是整个房子智能互联的互动入口。未来的家将是一个充满屏幕的家。冰箱可以通过微波雷达传感器屏幕与家庭智能产品连接。烹饪时,你可以通过冰箱观看洗衣机的工作,当你不能腾出手来照顾孩子时,你可以通过冰箱屏幕连接家庭摄像头,看到孩子的情况。冰箱的推出标志着屏幕上的未来之家正在迅速到来。 管理RFID食材,建立健康的家庭生活 据报道,5G冰箱配备了RFID食品材料管理模块,用户将自动记录和储存食品,无需操作。此外,冰箱还可以追溯食品来源,监控食品材料从诞生到用户的整个过程,以确保食品安全;当食品即将过期时,冰箱会自动提醒用户提供健康的饮食和生活。 风冷无霜,清新无痕 冰箱的出现是人类延长食品保存期的一项伟大发明。一个好的冰箱必须有很强的保存能力。5g冰箱采用双360度循环供气系统。智能补水功能使食品原料享受全方位保鲜,紧紧锁住水分和营养,防止食品原料越来越干燥。此外,该送风系统可将其送到冰箱的每个角落,消除每个储藏空间的温差,减少手工除霜的麻烦,使食品不再粘连。 进口电诱导保鲜技术,创新黑科技加持 针对传统冰箱保存日期不够长的痛点,5g互联网冰箱采用日本进口电诱导保存技术,不仅可以实现水果储存冰箱2周以上不腐烂发霉,还可以使蔬菜储存25天不发黄、不起皱。在-1℃~-5℃下,配料不易冻结,储存时间较长。冷冻食品解冻后无血,营养大化。此外,微波雷达传感器5g冰箱还支持-7℃~-24℃的温度调节,以满足不同配料的储存要求。 180°矢量变频,省电时更安静 一台好的压缩机对冰箱至关重要。冰箱配备了变频压缩机。180°矢量变频技术可根据冷藏室和冷冻室的需要有效提供冷却,达到食品原料的保鲜效果。180°矢量变频技术不仅大大降低了功耗,而且以非常低的分贝操作机器。保鲜效果和节能安静的技术冰箱可以在许多智能冰箱中占有一席之地,仅仅通过这种搭配就吸引了许多消费者的青睐。 配备天然草本滤芯,不再担心串味 各种成分一起储存在冰箱中,难以避免串味。此外,冰箱内容易滋生细菌,冰箱总是有异味。针对这一问题,冰箱创新配置了天然草本杀菌除臭滤芯。该滤芯提取了多种天然草本活性因子,可有效杀菌99.9%,抑制冰箱异味,保持食材新鲜。不仅如此,这个草本滤芯可以更快、更方便、更无忧地拆卸。家里有冰箱,开始健康保鲜的生活。 目前,冰箱屏幕唤醒微波雷达传感器正在继续推动家庭物联网的快速普及,相信在不久的将来,智能家电将成为互动终端。
esp32 c3智能音箱模块乐鑫代理商RISC-V机器模式异常管理寄存器,RISC-V 处理器内核中与机器模式异常相关的 CSR 寄存器列表。其中列出了处理器中与机器模式异常和中断管理相关的 10个 CSR 寄存器。 RISC-V 与机器模式异常相关的 CSR 寄存器 符号    名称    功能描述    CSR 空间地址 mstatus    机器模式状态寄存器 Machine Status Register    寄存器中MIE 和MPIE用于中断全局使能    0x300 medeleg    机器模式异常委托寄存器 Machine Exception Delegation Register    将异常委托给管理员模式    0x302 mideleg    机器模式中断委托寄存器 Machine Interrupt Delegation Register    将中断委托给管理员模式    0x303 mie    "机器模式中断使能寄存器  Machine Interrupt Enable Register"    内核中断使能    0x304 mtvec    机器模式异常入口基地址寄存器 Machine Trap-Vector Based-Address Register    中断向量表基地址,进入异常的PC地址    0x305 mepc    机器模式异常 PC寄存器 Machine Exception Program Counter    保存异常返回地址    0x341 mcause    机器模式异常原因寄存器 Machine Cause Register    保存异常类型和编码    0x342 mtval    机器模式异常值寄存器 Machine Trap Value Register    保存异常的附加信息    0x343 mip    机器模式中断状态寄存器 Machine Interrupt Pending Register    中断状态    0x344 mscratch    临时寄存器 Machine Scratch    暂时存放一个字大小的数据    0x340 1.机器模式状态寄存器(mstatus) mstatus 用于机器模式下控制和跟踪处理器内核(Hart)的运行状态,esp32 c3智能音箱模块乐鑫代理商管理员模式下与之对应的寄存器是 sstatus,用户模式下与之对应的寄存器是 ustatus。mstatus、sstatus 和 ustatus 在 CSR 空间的地址不同。RV32 架构 mstatus 寄存器中与中断处理相关的内容,包括 MIESIE、UIE、MPIE、SPIE、UPIE、SPP 位和MPP[1:0]域。对于 RV64,mstatus 寄存器为64 位。 MIE、SIE 和 UIE 分别是机器模式、管理员模式和用户模式中断使能控制位。 MIE=1,打开机器模式全局中断使能,使处理器内核能够响应中断请求;MIE=0,关闭机器模式全局中断使能,esp32 c3智能音箱模块乐鑫代理商处理器内核不响应任何中断请求。 SIE=1,打开管理员模式全局中断使能;SIE-0,关闭管理员模式全局中断使能。 UIE=1,打开用户模式全局中断使能;UIE=0,关闭用户模式全局中断使能。 MPIE、SPIE、UPIE 分别是机器模式、管理员模式和用户模式下的中断状态位。 发生中断请求时,MPIE=MIE、SPIE=SIE。如果开启中断使能,即MIE和SIE为1,则中断发生时MPIE和SPIE置1。 发生中断请求时,MPP[1:0]和SPP 自动保存中断发生前处理器内核的特权模式。在MPP[1:0]中可以保存M、S和U三种模式码;SPP中保存S和U两种模式码。 2.机器模式异常和中断委托寄存器(medeleg 和 mideleg) 对于RV32,medeleg 和 mideleg 是 32 位可读/写寄存器。在支持机器模式、管理员模式和用户模式 3 种模式的 RISC-V 处理器系统中,设置机器式下 medel。或 mideleg 中某一个位,可将与该位对应的异常或中断委托给管理员模式或用户式处理。esp32 c3智能音箱模块乐鑫代理商设置管理员模式下 sedeleg 和 sideleg 寄存器中某一位,可将与该位对应异常或中断委托给用户模式处理。在支持管理员模式的系统中,必须拥有 medele和mideleg 寄存器,而 sedeleg 和 sideleg 寄存器只存在于同时实现了用户模式中断和N扩展的系统中。 无论怎样设置中断和异常委托寄存器,发生异常时的控制权都不会移交给比当前级别更低的特权模式。在机器模式下发生的异常总是在机器模式下处理。esp32 c3智能音箱模块乐鑫代理商在管理员模式下发生的异常,根据具体的委托设置,可能由机器模式或管理员模式处理,但永远不会由用户模式处理。 3.机器模式中断使能寄存器(mie) 在 RV32 架构中,mie 是 32 位寄存器,设置不同模式和类型中断的使能状态。 mie 寄存器结构图其中,USIE 是用户模式软件中断使能位,SSIE是管理员模式软件中断使能位,esp32 c3智能音箱模块乐鑫代理商MSIE 是机器模式软件中断使能位,UTIE 是用户模式定时器中断使能位,STIE 是管理员模式定时器中断使能位,MTIE 是机器模式定时器中断使能位,UEIE 是用户模式外中断使能位,SEIE 是管理员模式外中断使能位,MEIE 是机器模式外中断使能位。 使能位置 1,使能与该位对应的中断类型;使能位清 0,关闭与该位对应的中断类型。 对于 RV64,mie 寄存器是 64 位。 管理员模式下对应的寄存器是管理员模式中断使能寄存器(sie)。与 mie 相比sie 去除了 MEIE、MTIE 和 MSIE 位。 用户模式下对应的寄存器是用户模式中断使能寄存器(uie)。与 mie 和 sie相比,uie寄存器中只有 UEIE、UTIE 和 USIE 位。 4.机器模式异常入口基地址寄存器(mtvec) mtvec 寄存器保存异常向量表基地址。mtvec 低 2 位选择中断外理程序人口模式(mode),高 30 位是异常向量表基地址(base[31;2])的高 30位基地址4字节对齐。对于 RV64,mtvec 寄存器为 64位。 mode=0,查询方式。所有中断响应后的入口地址相同,皆为基地址(baseaddress),进入中断处理程序后,查询具体中断源信息,然后根据中断源进行相应处理。 mode=1,向量中断模式。直接跳到向量表中与中断源相对应的位置,获取与该中断源对应的中断服务程序入口地址,执行中断服务程序。esp32 c3智能音箱模块乐鑫代理商在中断向量表中,与中断源对应的向量地址为 base address+4Xmcause[30:0]。 mode≥2,保留。 在管理员模式下,与 mtvec 对应的寄存器为管理员模式异常向量基地址寄存器(Supervisor Trap Vector Base Address Register,stvec)。 5.机器模式异常 PC寄存器(mepc) 在 RV32 架构中,mepc 是 32 位寄存器,用于保存发生异常时的 PC值,可以是有效的物理地址或虚拟地址。 当发生异常,esp32 c3智能音箱模块乐鑫代理商处理器进入机器模式时,mepc 寄存器自动保存发生中断或异常时指令的逻辑地址、物理地址或虚拟地址。 对于 RV64,mepc 寄存器是 64 位。 在管理员模式下,与 mepc 对应的寄存器是管理员模式异常 PC 寄存器(Supervisor Exception Program Counter,sepc)。 6.机器模式异常原因寄存器(mcause) mcause 保存产生异常的原因,异常发生时用当前异常码(Exception Code)自动更新该寄存器的值。RV32 架构中 mcause 寄存器结构图。其中,高位Interrupt 表示异常类型,低 31 位是异常编码。对于 RV64,mcause 寄存器为 64 位Interrupt=1,表示内核中断;Interrupt=0,表示异常。 列出了RISC-V中断相关的异常编码,中断类型包括软件中斯、内核定时器中断和外部中断。 RISC-V 中断异常编码 中断(Interrupt)    异常编码    异常描述 软件中断    0    用户模式软件中断 软件中断    1    管理员模式软件中断 软件中断    2    保留 软件中断    3    机器模式软件中断 定时器中断    4    用户模式定时器中断 定时器中断    5    管理员模式定时器中断 定时器中断    6    保留 定时器中断    7    机器模式定时器中断 外中断    8    用户模式外中断 外中断    9    管理员模式外中断 外中断    10    保留 外中断    11    机器模式外中断 保留    15    保留 保留    ≥16    保留 在管理员模式和用户模式下,与 mcause 对应的寄存器分别为管理员模式异常原因寄存器(Supervisor Cause Register,scause),以及用户模式异常原因寄存器User Cause Register, ucause) 。 7.机器模式异常值寄存器(mtval) 在RV32 架构中,mtval是 32 位寄存器。当发生异常进入机器模式时,mtval置零,或者写入该异常的特定信息,以便协助软件处理异常事件。在esp32 c3智能音箱模块乐鑫代理商RV64 架构中,mtval 寄存器是 64 位。 在管理员模式下,与 mtval 对应的寄存器为管理员模式异常值寄存器(Supervirsor Trap Value, stval) 。 8.机器模式中断状态寄存器(mip) 在 RV32 架构中,mip 是 32 位寄存器,指示机器模式下的中断状态。 mip寄存器结构。其中,USIP 是用户模式软件中断状态位,SSIP是管理员模式软件中断状态位,MSIP 是机器模式软件中断状态位,UTIP 是用户模式定时器中断状态位,STIP 是管理员模式定时器中断状态位,MTIP 是机器模式定时黑中断状态位,UEIP 是用户模式外中断状态位,SEIP 是管理员模式外中断状态位,MEIP 是机器模式外中断状态位。 当中断请求发生时,如果 mie 寄存器中与该中断类型对应的使能位为 1,则 mip相应的状态位置 1。例如,MEIE=1,当出现外中断请求时 MEIP=1。对于 RV64,mip 寄存器是 64 位。 在管理员模式下,与 mip 对应的寄存器是管理员模式中断状态寄存器(sip)。与mip 相比,sip 寄存器中去除了 MEIP、MTIP 和MSIP 位。esp32 c3智能音箱模块乐鑫代理商在用户模式下,与 mip 对应的寄存器是用户模式中断状态寄存器(uip),与 mip和 sip 相比,uip 寄存器中只有 UEIP、UTIP 和USIP位。
wifi和蓝牙芯片esp32 s2 c3乐鑫一级代理商RISC-V异常和中断处理,异常和中断处理是处理器中不可缺少而又复杂的功能,使处理器在正常程序运行过程中能够响应和处理异常事件或中断请求。当异常事件发生时,处理器暂停执行当前主程序,从暂停处跳转到异常件处理程序人口,执行异常处理程序。异常处理程序结束后,返回主程序暂停处的下一条指令,然后继续执行主程序。 RISC-V 特权架构定义了 RISC-V 处理器异常处理机制。在wifi和蓝牙芯片esp32 s2 c3乐鑫一级代理商RISC-V 特权架机器(M)模式和管理员(S)模式中,RISC-V 内核通过 CSR 寄存器管理异常和中断事件的响应和处理过程。 与ARM 等其他处理器架构相比,RISC-V 内核使用更多的寄存器和更复杂的方式,可更加灵活地管理异常和中断。  RV32 特权模式与异常 缺省情况下,RISC-V 处理器在机器(M)模式中处理异常事件和中断请求,执行异常处理和中断服务程序。 为了提高系统性能,wifi和蓝牙芯片esp32 s2 c3乐鑫一级代理商RISC-V 特权架构支持异常和中断委托机制,使处理器能够在低特权模式处理异常和中断,而不需要进入机器模式。通过设定 CSR 寄存器中机器模式的中断委托(Machine Interrupt Delegation,mideleg)和异常委托(MachineException Delegation,medeleg)寄存器将一些中断和异常委托低特权模式处理在被委托的低级模式中,可以通过软件屏蔽任何被委托给该特权模式的中断。 在机器(M)模式下发生的异常只能在机器模式中处理。在管理员(S)模式下发生的异常,根据中断委托设置,可在机器模式或管理员模式下处理。wifi和蓝牙芯片esp32 s2 c3乐鑫一级代理商在用户模式下发生的异常,根据中断委托设置,可在机器模式、管理员模式或用户模式下处理。如果在特权模式下响应用户模式下发生的中断请求,则处理完成后通过指令返回到用户模式。 RISC-V 处理器中断处理过程中 RV32 特权模式。其中,只支持机器(M)和用户(U)两种模式,在未设置中断委托情况下,处理器响应中断时特权模式转换方式。在用户模式下发生中断请求,并且处理器开启中断使能的情况下,处理器进入机器模式,响应中断请求并执行中断处理程序。中断处理程序完成后,处理器通过指令 MRET 从机器模式返回到用户模式。 支持 M、S 和 U 三种模式。如果不设置中断委托模式,则在用户模式发生中断后,处理器进入机器模式,响应并处理中断请求。中断处理完成后,使用指令 MRET 返回用户模式。wifi和蓝牙芯片esp32 s2 c3乐鑫一级代理商如果设置了中断委托模式,并且委托管理员模式处理中断请求,则在用户模式下发生请求时,处理器进入管理员模式并处理中断,运行中断服务程序,后通过指令 SRET 返回用户模式。在管理员模式中,可以通过程序中屏蔽任何委托给管理员模式的中断。 列出了 RV32 特权架构指令,其中 mret 和 sret 用于异常或中断处程序结束后返回,并在返回时改变处理器特权模式。 RV32特权架构指令 操 作    助记符    解释 machine-mode trap return    mret    机器模式异常返回 supervisor-mode trap return    sret    管理员模式异常返回 supervisor-mode fence. virtual memory address    sfence    管理员模式内存访问同步 wait for interrupt    wf    等待中断 wait for exception    wfe    等待异常
matter协议芯片乐鑫科技芯片代理商RISC-V寻址方式,寻址方式是处理器执行指令时获取数据地址,或者下一条指令地址的方式。RISC-V 处理器支持立即数寻址、寄存器寻址、寄存器间接寻址和程序计数(PC)相对寻址 4 种寻址方式。 1、立即数寻址 立即数寻址是简单直接的寻址方式,指令中直接以常数作为操作数。在RISC-V 汇编语句中,通常将字母“i”置于操作符末,表示立即数操作指令。例如,加法运算“add”操作的两个源操作数都是寄存器,而“addi”操作的一个源操作数是器,另一个操作数是立即数。在matter协议芯片乐鑫科技芯片代理商RV32I不同类型指令中立即数的取值范围有所差别。例如,操作“lui”的立即数范围是 20 位,“addi”和“andi”运算的立即数范围是 12位。使用 RV32I 指令组合,可以把任意 32 位整数装载到寄存器中。 例如,matter协议芯片乐鑫科技芯片代理商通过下列两条指令,能够将 32 位数 0x12345678 装载到寄存器 t0 中 1 lui t0,0x12345 //t0 =0x12345000 2 addi t0,t0,0x678 //t0=0x12345678 第1行,“lui”将一个 20 位常量加载到寄存器 t0 的第 12 位到第 31位,即t0[31:12],右边的 12 位 t0[11:0]填充 0。 第 2行,“addi”将 12 位立即数加到 t0 的第 0位到第 11 位,即 to[11:0]。 在装载和存储指令中,地址偏移量“offset”也是立即数,其取值范围是 12 位,即offset[11:0]。 2、寄存器寻址 寄存器寻址指令的源操作数是寄存器,从寄存器读取数据,并把结果保存到寄存器中。在matter协议芯片乐鑫科技芯片代理商RV32I指令集中,“add”“sub”“and”“or”和“xor”等运算指令的所有操作数都是寄存器,是典型的寄存器寻址指令。末字母非“i”的指令是寄存器寻址指令。 3、寄存器间接寻址 寄存器间接寻址指令以寄存器的数值作为内存地址(存储地址的寄存器又称为地址寄存器),从该内存地址所指向的存储单元读取数据,或者将数据写入到内存地址所指向的存储单元。如果指令中有偏移量“offset”,则存储单元的地址是地址寄存器的数值与“offset”之和。 下面通过示例说明间接寻址指令的操作。 列出了 0x800000 至 0x80001f 内存段中每个字节的数据。其中,第 1列是4字节对齐地址,第 1行是各字节的偏移地址,其他部分是相应内存单元中的数据 内存数据 内存地址    0    1    2    3 0x800000~0x800003    0x00    0xl0    0x20    0x30 0x800004~0x800007    0x04    0x14    0x24    0x34 0x800008~0x80000b    0x08    0x18    0x28    0x38 0x80000c~0x80000f    0x0c    0xlc    0x2c    0x3c 0x800010~0x800013    0x10    0x20    0x30    0x40 0x800014~0x800017    0x14    0x24    0x34    0x44 0x800018~0x80001b    0x18    0x28    0x38    0x48 0x80001c~0x80001f    0xlc    0x2c    0x3c    0x4c RISC-V 仅支持小端(litle-endian)存储格式。在字或半字数据中,数据中低位字节存放在内存中的低地址。 如果tl寄器中初始数值为 0x800000,则下列第1条、第 2条和第3条语句执行后 t0 中的数值分别为 0x302010000、x38281808 和 0x28。 1 Iw t0,(t1)    //t0=0x30201000 2 lw t0,8(t1)    //t0=0x38281808 3 Ib t0,10(t1) //t0 = 0x28 4、PC 相对寻址 PC相对寻址以当前 PC值为基地址,以指令中操作数为偏移量,两者相加后到新的内存地址。处理器从新的内存地址读取数据,或跳转到新的程序地址。matter协议芯片乐鑫科技芯片代理商RISC-V用PC相对寻址实现条件跳转和无条件跳转。在下列汇编程序中第4行语句中的“end”汇编后转成立即数 12,第 6 行中的“start”汇编后转成立即数-16,都是内存中当前指令到目标位置的距离,地址增大的方向为正,地址减小的向为负。条件分支指令立即数范围是±4 KB。 1 start: 2 add t0, t0, t1 3 ld t2,0(t0) 4 bne t2, t3, end //if(t2 != t3) PC= PC+ 12 5 addi t4, t4,1 6 beg t0, t0, start //PC= PC-16 7 end ; 下列两条是无条件跳转指令,语句 1 中“jal”跳转的范围是±1 MB,语句 2中“jalr”跳转的范围是±2 GB。 1 jal ra, dst //PC= PC+dst,ra= PC+ 4 2 jalr ra,0(t0) //PC=t0,ra= PC+4
上一页
1
2
...
110

地址:深圳市宝安区西乡街道麻布社区宝安互联网产业基地A区6栋7栋7706

邮箱:Sales@ferry-semi.com

版权所有©2020  深圳市飞睿科技有限公司  粤ICP备2020098907号    飞睿科技微波雷达wifi模块网站地图