找回密码
立即注册
搜索
发新帖

150

积分

0

好友

9

主题
发表于 2019-4-17 13:21:22 | 查看: 15394| 回复: 13
请教,GPIO4_C6作为输出GPIO一直写高,cpu占用从百分之十几飙升到60%,关掉写高程序,cpu占用立即降低至10%以下,是什么原因?

发表于 2019-4-20 16:24:20
做呼吸灯,或者控制电机,不见意用GPIO去做,见意用PWM定时器去做

回复 显示全部楼层 道具 举报

发表于 2019-4-20 15:17:28
xiangyi 发表于 2019-4-20 14:09
我们新做了一个系统,“每隔4ms进一次中断,将GPIO置高一次”CPU占用率高的问题不再出现。但为何两个系统会 ...

按道理来说,如果你采用中断方式触发GPIO拉高操作的话,CPU占用应该不至于这么高的
你可以先测试下,在触发中断里的不操作GPIO,如果CPU占用正常的话,就是操作GPIO口的流程比较占用资源,我们可以再进一步分析操作GPIO的流程
还有为什么要4ms拉高一次GPIO

回复 显示全部楼层 道具 举报

发表于 2019-4-20 14:47:38
xiangyi 发表于 2019-4-20 11:27
嗯,你说得对。我们在实际使用时采用的方式如下:每隔4ms进一次中断,将GPIO置高一次。采用上述方式产生的 ...

是的。。。

回复 显示全部楼层 道具 举报

发表于 2019-4-20 14:09:49
我们新做了一个系统,“每隔4ms进一次中断,将GPIO置高一次”CPU占用率高的问题不再出现。但为何两个系统会有这样的区别呢?之前我在改gpio配置的dtsi文件时也出现过这种情况。

回复 显示全部楼层 道具 举报

发表于 2019-4-20 11:27:18
嗯,你说得对。我们在实际使用时采用的方式如下:每隔4ms进一次中断,将GPIO置高一次。采用上述方式产生的结果是CPU占用急剧升高。这种现象对你们的板子来说是正常否?

回复 显示全部楼层 道具 举报

发表于 2019-4-19 17:23:00
xiangyi 发表于 2019-4-19 15:45
我们现在必须4ms调用一次,怎么能把CPU占用降下来?

你们需要实现什么功能,用while循环一直写高这种方法没办法使cpu降下来

回复 显示全部楼层 道具 举报

发表于 2019-4-19 16:50:17
大循环写高,我虽然不是搞软件开发,但是这种方式我也知道肯定是最不合适的。即使是在单片机里面也没人这样干。你每4ms拉高一次,拉高持续时间就是一个瞬间脉冲(无时间要求?)?置低时间也是4ms,那你CPU就没干什么,一个劲在拉高拉低了,都跳不出循环。

回复 显示全部楼层 道具 举报

发表于 2019-4-19 15:45:29
我们现在必须4ms调用一次,怎么能把CPU占用降下来?

回复 显示全部楼层 道具 举报

发表于 2019-4-19 11:11:19
xiangyi 发表于 2019-4-19 10:56
我使while循环方式,对GPIO4_C6间隔4ms置高一次:
while(1)
{

你一直写会一直调用驱动函数,CPU会占用很多

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

小黑屋|Archiver|手机版|深圳荣品电子  

GMT+8, 2024-5-19 01:16 , Processed in 0.085180 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表