完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
通过make menuconfig 把esp32 的CPU clock设置成240MHz, 分别把dhrystone的测试代码放到SRAM和flash执行,测量代码执行效率。
从文档来看,SRAM没有cache,flash有cache。 测试结果是,在SRAM和flash下的执行效率没多大差别,dhrystone只有0.67867DMIPS/Mz/S,只有240MHz理论值的1/2,,是SRAM和cache的速度太慢了吗? 我们最近在评估贵司的芯片,这样的结果显然达不到预期,可以请问一下具体原因吗? |
|
相关推荐
1个回答
|
|
首先,我们需要了解Dhrystone是一个基准测试程序,用于衡量处理器的性能。DMIPS/Mz/S(Dhrystone Millions of Instructions per Second per MHz)是一个性能指标,表示每MHz的处理器频率可以执行多少百万条指令。
在您的情况下,您已经通过make menuconfig将ESP32的CPU clock设置为240MHz,并在SRAM和flash上运行Dhrystone测试代码。测试结果显示,执行效率仅为0.67867DMIPS/Mz/S,远低于预期的240MHz理论值的1/2。 要分析这个问题,我们需要考虑以下几个可能的原因: 1. **代码优化**:Dhrystone测试代码可能没有针对ESP32进行优化。如果代码没有充分利用处理器的指令集和特性,性能可能会受到影响。 2. **编译器优化**:编译器设置可能不够优化。尝试使用更高级别的优化选项(如-O2或-O3)来编译代码,以提高性能。 3. **中断和任务切换**:如果在测试过程中有其他任务或中断在运行,可能会影响Dhrystone的性能。确保在测试期间没有其他任务或中断影响处理器的性能。 4. **SRAM和Flash性能**:虽然SRAM没有cache,但通常情况下,SRAM的速度应该比Flash快。然而,如果SRAM的性能受到限制,或者Flash的cache性能不佳,这可能会影响测试结果。 5. **处理器负载**:如果处理器在测试期间承受了较高的负载,这可能会影响Dhrystone的性能。检查系统资源使用情况,确保处理器在测试期间没有过载。 6. **测试代码执行方式**:确保测试代码在SRAM和Flash上以相同的方式执行。如果执行方式不同,可能会导致性能差异。 为了解决这个问题,您可以尝试以下步骤: 1. 优化Dhrystone测试代码,以充分利用ESP32的指令集和特性。 2. 使用更高级别的编译器优化选项重新编译代码。 3. 在测试期间禁用其他任务和中断,以确保处理器性能不受干扰。 4. 检查SRAM和Flash的性能,确保它们在测试过程中正常工作。 5. 确保测试代码在SRAM和Flash上以相同的方式执行。 通过这些步骤,您应该能够找到导致Dhrystone性能低于预期的原因,并采取相应的措施来提高性能。 |
|
|
|
只有小组成员才能发言,加入小组>>
429浏览 6评论
362浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
343浏览 5评论
349浏览 4评论
327浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 07:07 , Processed in 0.713236 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191