0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Milk-V Duo开发板免费体验 硬件使用-GPIO

wakojosin ? 来源:wakojosin ? 作者:wakojosin ? 2023-07-11 09:43 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随便看看

启动系统后板子上的LED灯就开始闪烁了,具体是什么灯呢,这个还不知道,正常有LED设备的话可以查看LED的所代表的行为,但是经过查找一番,没找到LED设备,那么就先看看有什么任务吧

[root@milkv]/sys/class/gpio# ps
PID   USER     COMMAND
    1 root     init
    2 root     [kthreadd]
    3 root     [rcu_gp]
    4 root     [rcu_par_gp]
    7 root     [kworker/u2:0-ev]
    8 root     [mm_percpu_wq]
    9 root     [ksoftirqd/0]
   10 root     [rcu_preempt]
   11 root     [kdevtmpfs]
   12 root     [rcu_tasks_kthre]
   13 root     [oom_reaper]
   14 root     [writeback]
   15 root     [kcompactd0]
   24 root     [kblockd]
   25 root     [watchdogd]
   27 root     [kworker/0:1H-kb]
   28 root     [rpciod]
   29 root     [kworker/u3:0]
   30 root     [xprtiod]
   31 root     [cfg80211]
   32 root     [kswapd0]
   33 root     [nfsiod]
   34 root     [stmmac_wq]
   35 root     [kworker/u2:1]
   68 root     [irq/43-cviusb-o]
   69 root     [irq/44-cd-gpio-]
   70 root     [sdhci]
   71 root     [irq/21-mmc0]
   73 root     [ion_system_heap]
   74 root     [mmc_complete]
   79 root     [jbd2/mmcblk0p2-]
   80 root     [ext4-rsv-conver]
   96 root     /sbin/syslogd -n
  100 root     /sbin/klogd -n
  128 root     [kworker/0:3-eve]
  146 root     /usr/sbin/dropbear -R
  151 nobody   /usr/sbin/dnsmasq
  161 root     [cvitask_isp_pre]
  162 root     [cvitask_isp_bla]
  163 root     [cvitask_isp_err]
  165 root     [cvitask_vpss_0]
  166 root     [cvitask_vpss_1]
  168 root     [gdc_work]
  173 root     [cvitask_tpu_wor]
  178 root     {S99user} /bin/sh /etc/init.d/S99user start
  183 root     [kworker/0:2H]
  187 root     -sh
  268 root     /usr/sbin/dropbear -R
  282 root     -sh
 2390 root     [kworker/0:0-eve]
 3097 root     [kworker/0:1-eve]
 3650 root     ps
 3651 root     sleep 0.5

在里面看到了一个S99user的启动脚本,那么看看内容是什么呢?

[root@milkv]/sys/class/gpio# cat /etc/init.d/S99user
#!/bin/sh
${CVI_SHOPTS}
#
# Start firmware
#
export USERDATAPATH=/mnt/data/
export SYSTEMPATH=/mnt/system/

case "$1" in
  start)
        echo "init mpp system..."
        if [ -d $SYSTEMPATH/ko ]; then
                sh $SYSTEMPATH/ko/loadsystemko.sh
        fi

        echo "Starting app..."

        if [ -f $SYSTEMPATH/blink.sh ]; then
                . $SYSTEMPATH/blink.sh &
        fi

        if [ -f $SYSTEMPATH/rndis.sh ]; then
                . $SYSTEMPATH/rndis.sh &
        fi

        if [ -f $USERDATAPATH/auto.sh ]; then
                usleep 30000
                . $USERDATAPATH/auto.sh &
                exit 1
        fi
        if [ -f $SYSTEMPATH/auto.sh ]; then
                usleep 30000
                . $SYSTEMPATH/auto.sh &
        fi
        ;;
  stop)
        ;;
  restart|reload)
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?

通过查看脚本可以看到/mnt/data/下面会检测auto.sh,/mnt/system/下面会检测ko/loadsystemko.sh,blink.sh,rndis.sh,auto.sh

分别看看这些文件都有什么东西:

[root@milkv]/mnt# ls
system
[root@milkv]/mnt# cat system/ko/loadsystemko.sh
#!/bin/sh
${CVI_SHOPTS}
#
# Start to insert kernel modules
#
insmod /mnt/system/ko/cv180x_sys.ko
insmod /mnt/system/ko/cv180x_base.ko
insmod /mnt/system/ko/cv180x_rtos_cmdqu.ko
insmod /mnt/system/ko/cv180x_fast_image.ko
insmod /mnt/system/ko/cvi_mipi_rx.ko
insmod /mnt/system/ko/snsr_i2c.ko
insmod /mnt/system/ko/cv180x_vi.ko
insmod /mnt/system/ko/cv180x_vpss.ko
insmod /mnt/system/ko/cv180x_dwa.ko
#insmod /mnt/system/ko/cv180x_vo.ko
#insmod /mnt/system/ko/cv180x_mipi_tx.ko
insmod /mnt/system/ko/cv180x_rgn.ko

#insmod /mnt/system/ko/cv180x_wdt.ko
insmod /mnt/system/ko/cv180x_thermal.ko
insmod /mnt/system/ko/cv180x_clock_cooling.ko

insmod /mnt/system/ko/cv180x_tpu.ko
insmod /mnt/system/ko/cv180x_vcodec.ko
insmod /mnt/system/ko/cv180x_jpeg.ko
insmod /mnt/system/ko/cvi_vc_driver.ko MaxVencChnNum=9 MaxVdecChnNum=9
#insmod /mnt/system/ko/cv180x_rtc.ko
#insmod /mnt/system/ko/cv180x_ive.ko

echo 3 > /proc/sys/vm/drop_caches
dmesg -n 4

#usb hub control
#/etc/uhubon.sh host

exit $?
[root@milkv]/mnt# cat system/blink.sh
#!/bin/sh

LED_GPIO=/sys/class/gpio/gpio440

if test -d $LED_GPIO; then
    echo "GPIO440 already exported"
else
    echo 440 > /sys/class/gpio/export
fi

echo out > $LED_GPIO/direction

while true; do
    echo 0 > $LED_GPIO/value
    sleep 0.5
    echo 1 > $LED_GPIO/value
    sleep 0.5
done
[root@milkv]/mnt# cat system/rndis.sh
#!/bin/sh

/etc/uhubon.sh device >> /tmp/rndis.log 2>&1
/etc/run_usb.sh probe rndis >> /tmp/rndis.log 2>&1
/etc/run_usb.sh start rndis >> /tmp/rndis.log 2>&1

sleep 0.5
ifconfig usb0 192.168.42.1

count=`ps | grep dnsmasq | grep -v grep | wc -l`
if [ ${count} -lt 1 ] ;then
  echo "/etc/init.d/S80dnsmasq start" >> /tmp/rndis.log 2>&1
  /etc/init.d/S80dnsmasq start >> /tmp/rndis.log 2>&1
fi
[root@milkv]/mnt# cat system/auto.sh
#!/bin/sh
${CVI_SHOPTS}

export LD_LIBRARY_PATH="/lib:/lib/3rd:/lib/arm-linux-gnueabihf:/usr/lib:/usr/local/lib:/mnt/system/lib:/mnt/system/usr/lib:/mnt/system/usr/lib/3rd:/mnt/data/lib"
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/mnt/system/usr/bin:/mnt/system/usr/sbin:/mnt/data/bin:/mnt/data/sbin"


if [ ! -f "/tmp/evb_init" ];then
   echo 1 > /tmp/evb_init
else
   exit 1
fi

GPIO

通过查看脚本看到了LED是通过脚本来控制的功能是周期1S的闪烁,RNDIS是在脚本里面设置的IP地址,直接设置为192.168.42.1

关于LED引脚,原理图上面写的是XGPIOC[24]

wKgZomSsEJKAaCYHAAEg3OZUWXo004.pngwKgZomSsESOAdcgUAAAuQQ9RBXo952.png

教程里面是用GPIOx(x=0,1,2…)来表示的,通过测试GPIOA=GPIO0,GPIOB=GPIO1以此类推,GPIOC[24]=416+24=440,与脚本的引脚号一致,所以把blink.sh脚本干掉之后手动控制一下试试,发现输出结果符合预期,但是输出模式好像不能读取电平,读到的电平一直是0。

[root@milkv]/sys/class/gpio# ls
export       gpiochip352  gpiochip384  gpiochip416  gpiochip448  gpiochip480  unexport
[root@milkv]/sys/class/gpio# echo 440 > export
[root@milkv]/sys/class/gpio# ls
export       gpio440      gpiochip352  gpiochip384  gpiochip416  gpiochip448  gpiochip480  unexport
[root@milkv]/sys/class/gpio# cd gpio440/
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# ls
active_low  device      direction   edge        subsystem   uevent      value
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# cat direction
in
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# echo out >direction
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# cat value
0
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# echo 1 > value
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# cat value
0
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# echo 0 > value
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# cat value
0
[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440#

然后测试其他引脚,比如说GPIO14(GPIOA[14])和GPIO15(GPIOA[15]),即494和495

wKgaomSsEcyAR7tiAAGPUm7-gTQ783.png

结果与LED引脚不一样,电平不受控制,原因未知,可能是受其他模块影响吧,换GPIO6(GPIOA[23])和GPIO17(GPIOA[24]),即503和504试试,结果是符合预期的。

wKgZomSsGIiANvs5AAB62Via6wE990.png

至此GPIO的测试就完成了


审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23910

    浏览量

    676788
  • 硬件
    +关注

    关注

    11

    文章

    3498

    浏览量

    67759
  • 硬件设计
    +关注

    关注

    18

    文章

    434

    浏览量

    45293
  • 开发板
    +关注

    关注

    25

    文章

    5769

    浏览量

    106416
  • GPIO
    +关注

    关注

    16

    文章

    1289

    浏览量

    54428
  • 脚本
    +关注

    关注

    1

    文章

    401

    浏览量

    28724
  • Milk-V Duo
    +关注

    关注

    2

    文章

    28

    浏览量

    387
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Milk-V Duo 开发板免费体验】小身板大能力RISC-V开发板

    Milk-V Duo是一款基于算能 CV1800B芯片的MPU,能够运行基于LINUX和RTOS的操作系统。Milk-V Duo为专业人士、工业OEM企业、物联网爱好者、业余爱好者、D
    的头像 发表于 06-30 10:25 ?5508次阅读
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b> <b class='flag-5'>开发板</b><b class='flag-5'>免费</b>体验】小身板大能力RISC-<b class='flag-5'>V</b><b class='flag-5'>开发板</b>

    Milk-V Duo】1、入门篇

    入门milk-V Duo开发板
    的头像 发表于 07-07 11:21 ?2246次阅读
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b>】1、入门篇

    Milk-V Duo开发板免费体验】Milk-V初次使用

    Milk-V Duo开发板免费体验】Milk-V初次使用
    的头像 发表于 08-08 09:03 ?2980次阅读
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b><b class='flag-5'>开发板</b><b class='flag-5'>免费</b>体验】<b class='flag-5'>Milk-V</b>初次使用

    Milk-V Duo S 开发板免费体验】1-开箱和烧写镜像

    感谢电子发烧友和Milk-V提供的评测机会。 开发板简介 我以前在电子发烧友评测过Milk-V Duo,也曾经带学生打过集创赛算能赛道,对他们的产品有所了解。
    发表于 07-02 20:42

    Milk-V Duo S 开发板免费体验】人脸检测

    Milk-V Duo S 开发板免费体验】人脸检测 本文介绍了 Milk-V Duo S
    发表于 07-27 16:53

    Milk-V Duo S 开发板免费体验】测试舵机

    。使用wiringX,开发者可以使用相同的代码来控制不同平台上的 GPIO 引脚,简化了跨平台开发的工作,使得开发嵌入式应用程序更加方便和灵活。 选择pwm1,先找到针脚。 然后到
    发表于 08-09 22:46

    Milk-V Duo 开发板免费体验】 + 系统镜像烧录以及登录

    Milk-V Duo 开发板免费体验】+系统镜像烧录以及登录 一.Milk-V Duo
    发表于 07-11 11:43

    Milk-V Duo 开发板免费体验】Milk-V Duo之开箱初体验

    外接扩展板) 这样看来很适合做一些广告机等多媒体设备。 三,软件 除了强大的硬件性能,Milk-V Duo还具备良好的软件支持。官方释放了丰富的开发工具和库,方便用户进行各种应用程序的
    发表于 07-16 01:15

    Milk-V Duo 开发板免费体验】Milk-V Duo 开发板学习初体验

    第一次申请成功,心情很是喜悦,经过几天的等待收到了我心心念念的Milk-V Duo 开发小板。 迫不及待的开始了学习初体验,先牺牲下爱车的行车记录仪SD卡贡献下 1、直接下载镜像
    发表于 07-28 15:58

    Milk-V Duo 开发板免费体验】开发板使用3

    接上文 【Milk-V Duo 开发板免费体验】开发板使用1 |和接上文 【Milk-V
    发表于 07-29 08:17

    Milk-V Duo 开发板免费体验】milkv-duo 申请成功体验

    。 引脚图 总结 Milk-V Duo开发板的小巧精致设计和强悍的性能确实为创客和开发者提供了一个优秀的平台。它的紧凑设计使得它适用于各种空间有限的场景,同时强大的性能可以支持复杂
    发表于 07-29 14:31

    Milk-V Duo 开发板免费体验】Milk-V Duo 开发板初体验

    今天收到 ,打开快递的第一感觉就是非常精致小巧,一个黑色的小盒子及一块非常小巧但功能非常完善的开发板Milk-V Duo是一款基于算能 CV1800B芯片的MPU,能够运行基于LINUX
    发表于 08-18 00:26

    Milk-V Duo 开发板免费体验】3-Linux控制小车方向

    接上两篇:【Milk-V Duo 开发板免费体验】2控制螺旋桨电路https://bbs.elecfans.com/jishu_2371054_1_1.html 【
    发表于 08-20 23:57

    Milk-V Duo 开发板免费体验】4-Linux控制小车动作(原创)首发

    接上三篇: [接上两篇:【Milk-V Duo 开发板免费体验】3-Linux控制小车方向https://bbs.elecfans.com/jishu_2371135_1_1.html
    发表于 08-21 02:11

    Milk-V Duo 开发板免费体验】初体验及开箱视频

    刚刚收到开发板,给大家做个视频来初步了解以下Milk-V Duo 开发板Milk-V Duo
    发表于 08-22 23:59