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

150

积分

0

好友

9

主题
发表于 2019-7-12 16:54:59 | 查看: 5918| 回复: 0
本帖最后由 xiangyi 于 2019-7-12 16:58 编辑

尊敬的荣品公司的工程师们,你们好,我在使用贵公司的RD3399B瑞芯微rk3399开发板安装Ubuntu16.04后,发现了一个GPIO方面的问题,请贵公司帮助解决,问题如下:
我在执行一条GPIO输出置高的指令gpio_write(GPIO_fd, echo_write_high_buffer[7]); 时发现这条指令需要耗时8ms左右,请问怎么能调高效率,让这条指令执行时间小于1us,越小越好?

以下是我计时程序和GPIO输出配置
//Time Start
        gettimeofday(&start, NULL);

    gpio_write(GPIO_fd, echo_write_high_buffer[7]);


  //Time End
    gettimeofday(&end, NULL );
    long timeuse =1000000 * ( end.tv_sec - start.tv_sec ) + (end.tv_usec - start.tv_usec);  tv_sec: s; tv_usec: us
    printf("Running time %ld us\n",timeuse );   unit: us


/* output LOW_LEVEL */
unsigned char *echo_write_low_buffer[] = {
                                        "echo 4_C5_0_0 > /proc/gpio_set/rp_gpio_set", /* 0 GPIO4_C5, J5 pin37, 3rd RS485, 3.3V */
                                        "echo 4_D3_0_0 > /proc/gpio_set/rp_gpio_set", /* 1 GPIO4_D3, J3 pin20. 2nd RS485, 3.3V */
                                        "echo 0_B5_0_0 > /proc/gpio_set/rp_gpio_set", /* 2 GPIO0_B5, J3 pin17, 1.8V, default:1 */
                                        "echo 1_A1_0_0 > /proc/gpio_set/rp_gpio_set", /* 3 GPIO1_A1, J3 pin18, 1.8V, default:1 */
                                        "echo 1_C4_0_0 > /proc/gpio_set/rp_gpio_set", /* 4 GPIO1_C4, J3 pin19, 1.8V, default:1 */
                                        "echo 1_C6_0_0 > /proc/gpio_set/rp_gpio_set", /* 5 GPIO1_C6, J2 pin41, 1.8V, default:1 */
                                        "echo 1_A4_0_0 > /proc/gpio_set/rp_gpio_set", /* 6 GPIO1_A4, J2 pin42, 1.8V, default:1 */
                                        "echo 4_C6_0_0 > /proc/gpio_set/rp_gpio_set", /* 7 GPIO4_C6, J2 pin73, 3.3V, DOUT1 3G_EN */
                                        "echo 4_D6_0_0 > /proc/gpio_set/rp_gpio_set", /* 8 GPIO4_D6, J3 pin49, 3.3V, DOUT2 5V_EN */
                                        "echo 4_D1_0_0 > /proc/gpio_set/rp_gpio_set", /* 9 GPIO4_D1, J2 pin72, 3.3V, DOUT3 VCC5V0_HOST_EN */
                                        "echo 1_C7_0_0 > /proc/gpio_set/rp_gpio_set", /* 10 GPIO1_C7, J2 pin8, 1.8V, DOUT6 */
                                        "echo 1_B5_0_0 > /proc/gpio_set/rp_gpio_set", /* 11 GPIO1_B5, J2 pin52, 1st RS485, 1.8V */
                                        "echo 4_D2_0_0 > /proc/gpio_set/rp_gpio_set", /* 12 GPIO4_D2, J3 pin20, 2nd RS485, 3.3V, actually, there is no GPIO4_D2, and GPIO4_D3 is true. */
                                        "echo 0_B0_0_0 > /proc/gpio_set/rp_gpio_set", /* 13 GPIO0_B0, J3 pin15, Wk2124, pin10: IRQ */
                                        "echo 4_D5_0_0 > /proc/gpio_set/rp_gpio_set", /* 14 GPIO4_D5, J3 pin50, WK2124, pin8: RST */
                                        "echo 1_C2_0_0 > /proc/gpio_set/rp_gpio_set", /* 15 GPIO1_C2, J2 pin43, FAN */
                                        "echo 4_D0_0_0 > /proc/gpio_set/rp_gpio_set", /* 16 GPIO4_D0, J5 pin38, D16, LED */
                                        "echo 1_D1_0_0 > /proc/gpio_set/rp_gpio_set", /* 17 GPIO1_D1, J2 pin74, reserved for use */
                                        "echo 0_B4_0_0 > /proc/gpio_set/rp_gpio_set", /* 18 GPIO0_B4, J3 pin16, reserved for use */
                                        "echo 1_A0_0_0 > /proc/gpio_set/rp_gpio_set", /* 19 GPIO1_A0, J3 pin51, reserved for use */
                                        "echo 4_D4_0_0 > /proc/gpio_set/rp_gpio_set", /* 20 GPIO4_D4, J4 pin36, 3.3V, which replaces GPIO1_B5 and services for 1st RS485 */
                                        "echo 0_B3_0_0 > /proc/gpio_set/rp_gpio_set"  /* 21 GPIO0_B3, J5 pin37, reserved for use */
};

/* output HIGH_LEVEL */
unsigned char *echo_write_high_buffer[] = {
                                        "echo 4_C5_0_1 > /proc/gpio_set/rp_gpio_set", /* 0 GPIO4_C5, J5 pin37, 3rd RS485, 3.3V */
                                        "echo 4_D3_0_1 > /proc/gpio_set/rp_gpio_set", /* 1 GPIO4_D3, J3 pin20. 2nd RS485, 3.3V */
                                        "echo 0_B5_0_1 > /proc/gpio_set/rp_gpio_set", /* 2 GPIO0_B5, J3 pin17, 1.8V, default:1 */
                                        "echo 1_A1_0_1 > /proc/gpio_set/rp_gpio_set", /* 3 GPIO1_A1, J3 pin18, 1.8V, default:1 */
                                        "echo 1_C4_0_1 > /proc/gpio_set/rp_gpio_set", /* 4 GPIO1_C4, J3 pin19, 1.8V, default:1 */
                                        "echo 1_C6_0_1 > /proc/gpio_set/rp_gpio_set", /* 5 GPIO1_C6, J2 pin41, 1.8V, default:1 */
                                        "echo 1_A4_0_1 > /proc/gpio_set/rp_gpio_set", /* 6 GPIO1_A4, J2 pin42, 1.8V, default:1 */
                                        "echo 4_C6_0_1 > /proc/gpio_set/rp_gpio_set", /* 7 GPIO4_C6, J2 pin73, 3.3V, DOUT1 3G_EN */
                                        "echo 4_D6_0_1 > /proc/gpio_set/rp_gpio_set", /* 8 GPIO4_D6, J3 pin49, 3.3V, DOUT2 5V_EN */
                                        "echo 4_D1_0_1 > /proc/gpio_set/rp_gpio_set", /* 9 GPIO4_D1, J2 pin72, 3.3V, DOUT3 VCC5V0_HOST_EN */
                                        "echo 1_C7_0_1 > /proc/gpio_set/rp_gpio_set", /* 10 GPIO1_C7, J2 pin8, 1.8V, DOUT6 */
                                        "echo 1_B5_0_1 > /proc/gpio_set/rp_gpio_set", /* 11 GPIO1_B5, J2 pin52, 1st RS485, 1.8V */
                                        "echo 4_D2_0_1 > /proc/gpio_set/rp_gpio_set", /* 12 GPIO4_D2, J3 pin20, 2nd RS485, 3.3V, actually, there is no GPIO4_D2, and GPIO4_D3 is true. */
                                        "echo 0_B0_0_1 > /proc/gpio_set/rp_gpio_set", /* 13 GPIO0_B0, J3 pin15, Wk2124, pin10: IRQ */
                                        "echo 4_D5_0_1 > /proc/gpio_set/rp_gpio_set", /* 14 GPIO4_D5, J3 pin50, WK2124, pin8: RST */
                                        "echo 1_C2_0_1 > /proc/gpio_set/rp_gpio_set", /* 15 GPIO1_C2, J2 pin43, FAN */
                                        "echo 4_D0_0_1 > /proc/gpio_set/rp_gpio_set", /* 16 GPIO4_D0, J5 pin38, D16, LED */
                                        "echo 1_D1_0_1 > /proc/gpio_set/rp_gpio_set", /* 17 GPIO1_D1, J2 pin74, reserved for use */
                                        "echo 0_B4_0_1 > /proc/gpio_set/rp_gpio_set", /* 18 GPIO0_B4, J3 pin16, reserved for use */
                                        "echo 1_A0_0_1 > /proc/gpio_set/rp_gpio_set", /* 19 GPIO1_A0, J3 pin51, reserved for use */
                                        "echo 4_D4_0_1 > /proc/gpio_set/rp_gpio_set", /* 20 GPIO4_D4, J4 pin36, 3.3V, which replaces GPIO1_B5 and services for 1st RS485 */
                                        "echo 0_B3_0_1 > /proc/gpio_set/rp_gpio_set"  /* 21 GPIO0_B3, J5 pin37, reserved for use */
};

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

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

GMT+8, 2024-4-26 03:04 , Processed in 0.077746 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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