请选择 进入手机版 | 继续访问电脑版

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

150

积分

0

好友

9

主题
发表于 2019-4-29 14:50:55 | 查看: 9587| 回复: 8


每隔4ms进一次中断,将GPIO置高一次(即执行图1所示函数,图2为图1函数中的数组)。打印结果如图3所示。由图可知,将GPIO写高一次所用的执行时间为7985us。这导致我们的程序执行失败,所以请教下,这个执行时间是正常的吗?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

发表于 2019-5-5 16:39:17
可以从驱动层打印一下从收到命令到设置为高状态的时间,理论上不应该这么长的,从驱动里定位

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

发表于 2019-5-5 16:49:57
按照你提供的驱动层测试方法,可否提供“从驱动层打印从收到命令到设置为高状态的时间”的测试程序?

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

发表于 2019-5-5 17:30:02
xiangyi 发表于 2019-5-5 16:49
按照你提供的驱动层测试方法,可否提供“从驱动层打印从收到命令到设置为高状态的时间”的测试程序?

你可以用time相关的函数进行打印,demo测试不出来

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

发表于 2019-5-5 17:35:13
我们的驱动为了做GPIO名字适配,做了一些名字解析的工作,假如你需要指定GPIO,那就在write函数里直接通过某个值强行写GPIO拉高拉高低,减少名字适配的操作,这样可双节省操作的时间。具体能够优化的操作,需要你在驱动里看代码再结合你的需求来做。

比如echo 1 > /proc/*** 你就在write函数里直接对某个GPIO进行操作拉高拉低,不用再通过名字解析

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

发表于 2019-5-5 17:36:51
  1. static int gpio_proc_write(struct file * file,const char * buffer,unsigned long count,void * data)
  2. {
  3.         int value;
  4.         int i;
  5.         value = 0;
  6.         sscanf(buffer, "%d", &value);
  7.         pr_debug("value = %d\n",value);
  8. #if 0
  9.         if (value == 1)
  10.                 {       
  11.                         gpio_direction_output(gpio[0], 1);
  12.                 }
  13.         else if (value == 2)
  14.                 {
  15.                         gpio_direction_output(gpio[0], 0);
  16.                 }
  17.         else if (value == 3)
  18.                 {
  19.                         gpio_direction_output(gpio[1], 1);
  20.                 }
  21.         else if (value == 4)
  22.                 {
  23.                         gpio_direction_output(gpio[1], 0);
  24.                 }
  25.         else if (value == 5)
  26.                 {
  27.                         //gpio_request(gpio[2], "rp_gpio");
  28.                         gpio_direction_output(gpio[2], 1);
  29.                         //gpio_free(gpio[2]);
  30.                         //msleep(50);
  31.                 }
复制代码

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

发表于 2019-5-7 17:03:03
可否给出GPIO模式配置、输入GPIO读、输出GPIO写等相关的函数,以及这些函数的调用demo?

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

发表于 2019-5-7 17:23:06
比如GPIO4_D3作为输出GPIO时,用你提供的函数如何写高写低?

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

发表于 2019-5-7 17:26:21
GPIO4_D3作为输入GPIO时,用你提供的函数如何读取状态?

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

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

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

GMT+8, 2024-3-29 05:17 , Processed in 0.081941 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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