随便看看
启动系统后板子上的led灯就开始闪烁了,具体是什么灯呢,这个还不知道,正常有led设备的话可以查看led的所代表的行为,但是经过查找一番,没找到led设备,那么就先看看有什么任务吧
[root@milkv]/sys/class/gpio# pspid 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 1esacexit $? 通过查看脚本可以看到/mnt/data/下面会检测auto.sh,/mnt/system/下面会检测ko/loadsystemko.sh,blink.sh,rndis.sh,auto.sh
分别看看这些文件都有什么东西:
[root@milkv]/mnt# lssystem[root@milkv]/mnt# cat system/ko/loadsystemko.sh#!/bin/sh${cvi_shopts}## start to insert kernel modules#insmod /mnt/system/ko/cv180x_sys.koinsmod /mnt/system/ko/cv180x_base.koinsmod /mnt/system/ko/cv180x_rtos_cmdqu.koinsmod /mnt/system/ko/cv180x_fast_image.koinsmod /mnt/system/ko/cvi_mipi_rx.koinsmod /mnt/system/ko/snsr_i2c.koinsmod /mnt/system/ko/cv180x_vi.koinsmod /mnt/system/ko/cv180x_vpss.koinsmod /mnt/system/ko/cv180x_dwa.ko#insmod /mnt/system/ko/cv180x_vo.ko#insmod /mnt/system/ko/cv180x_mipi_tx.koinsmod /mnt/system/ko/cv180x_rgn.ko#insmod /mnt/system/ko/cv180x_wdt.koinsmod /mnt/system/ko/cv180x_thermal.koinsmod /mnt/system/ko/cv180x_clock_cooling.koinsmod /mnt/system/ko/cv180x_tpu.koinsmod /mnt/system/ko/cv180x_vcodec.koinsmod /mnt/system/ko/cv180x_jpeg.koinsmod /mnt/system/ko/cvi_vc_driver.ko maxvencchnnum=9 maxvdecchnnum=9#insmod /mnt/system/ko/cv180x_rtc.ko#insmod /mnt/system/ko/cv180x_ive.koecho 3 > /proc/sys/vm/drop_cachesdmesg -n 4#usb hub control#/etc/uhubon.sh hostexit $?[root@milkv]/mnt# cat system/blink.sh#!/bin/shled_gpio=/sys/class/gpio/gpio440if test -d $led_gpio; then echo gpio440 already exportedelse echo 440 > /sys/class/gpio/exportfiecho out > $led_gpio/directionwhile true; do echo 0 > $led_gpio/value sleep 0.5 echo 1 > $led_gpio/value sleep 0.5done[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 >&1sleep 0.5ifconfig usb0 192.168.42.1count=`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 >&1fi[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/libexport 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/sbinif [ ! -f /tmp/evb_init ];then echo 1 > /tmp/evb_initelse exit 1fi gpio
通过查看脚本看到了led是通过脚本来控制的功能是周期1s的闪烁,rndis是在脚本里面设置的ip地址,直接设置为192.168.42.1
关于led引脚,原理图上面写的是xgpioc[24]
而教程里面是用gpiox(x=0,1,2…)来表示的,通过测试gpioa=gpio0,gpiob=gpio1以此类推,gpioc[24]=416+24=440,与脚本的引脚号一致,所以把blink.sh脚本干掉之后手动控制一下试试,发现输出结果符合预期,但是输出模式好像不能读取电平,读到的电平一直是0。
[root@milkv]/sys/class/gpio# lsexport gpiochip352 gpiochip384 gpiochip416 gpiochip448 gpiochip480 unexport[root@milkv]/sys/class/gpio# echo 440 > export[root@milkv]/sys/class/gpio# lsexport gpio440 gpiochip352 gpiochip384 gpiochip416 gpiochip448 gpiochip480 unexport[root@milkv]/sys/class/gpio# cd gpio440/[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# lsactive_low device direction edge subsystem uevent value[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# cat directionin[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# echo out >direction[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# cat value0[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# echo 1 > value[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# cat value0[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# echo 0 > value[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# cat value0[root@milkv]/sys/devices/platform/3022000.gpio/gpiochip2/gpio/gpio440# 然后测试其他引脚,比如说gpio14(gpioa[14])和gpio15(gpioa[15]),即494和495
结果与led引脚不一样,电平不受控制,原因未知,可能是受其他模块影响吧,换gpio6(gpioa[23])和gpio17(gpioa[24]),即503和504试试,结果是符合预期的。
至此gpio的测试就完成了
数据信息大时代下,分布式存储将成为变局的突破点
物联网应用怎样和工厂与医疗相联系
大疆RoboMaster EP与机甲大师S1有何区别
纳米技术在航空航天工业中的潜力
电机驱动集成的故事
Milk-V Duo开发板免费体验 硬件使用-GPIO
华为最新消息 新增自动驾驶相关专利
泡泡智能机器人,孩子最好的伙伴
iPhone 8将会采用平面屏幕?你失望了吗?
OPPOR11最新消息:OPPOR11为何能够抢占销量高地?有理有据这5大理由告诉你
蓝牙模块如何去选,音频还是数传还是双模还是mesh
从裸机调度过渡到RTOS的注意事项
电子产品主板点胶是怎么回事,为什么手机数码产品芯片需要点胶?
浪涌保护器和电涌是什么,浪涌保护器的作用
薄膜表面瑕疵检测仪的检测原理以及优势说明
笔记本电脑的LVDS图形切换
OpenVINO™ 中用于推理优化的自适应参数选择功能介绍
GTC23 | China AI Day 定档 3 月 22 日,11 位嘉宾阵容全公布!
法拉第未来回应被纳斯达克要求退市
基于ESD保护器件的便携设备应用