驱动加载时,提示:
[ 359.119278] Call trace:
[ 359.121729] dump_backtrace+0x0/0x1b0
[ 359.125387] show_stack+0x20/0x30
[ 359.128699] dump_stack+0xd4/0x110
[ 359.132097] sysfs_warn_dup+0x6c/0x90
[ 359.135751] sysfs_create_dir_ns+0xf8/0x11c
[ 359.139929] kobject_add_internal+0xc0/0x2c0
[ 359.144190] kobject_add+0x98/0x110
[ 359.147674] device_add+0xe4/0x750
[ 359.151067] device_create_groups_vargs+0xe8/0x140
[ 359.155850] device_create_with_groups+0x60/0x8c
[ 359.160459] misc_register+0x198/0x200
[ 359.164205] init_module+0x1c/0x1000 [flymap_trig]
[ 359.168988] do_one_initcall+0x68/0x280
[ 359.172819] do_init_module+0x50/0x260
[ 359.176559] load_module+0x2244/0x2814
[ 359.180299] __se_sys_init_module+0x148/0x1e0
[ 359.184647] __arm64_sys_init_module+0x24/0x30
[ 359.189083] do_el0_svc+0xf4/0x210
[ 359.192479] el0_svc+0x20/0x30
[ 359.195525] el0_sync_handler+0xb0/0xd0
[ 359.199351] el0_sync+0x170/0x180
[ 359.202727] kobject_add_internal failed for flymap_vsync with -EEXIST, don't try to register things with the same name in the same directory.
[ 359.215443] register device failed!
加载时就肯定会报错了,因为在 /sys/class/gpio 目录看到了驱动还用到的 gpio40,即gpio5_0。找到设置 gpio40 的启动脚本,
GPIO_5_0=/sys/class/gpio/gpio40
if [ ! -d $GPIO_5_0 ]; then
echo 40 > /sys/class/gpio/export
echo out > $GPIO_5_0/direction
echo 0 > $GPIO_5_0/value
fi
屏蔽此部分脚本代码,驱动正常加载。
[ 28.896502] register device success !
[ 28.900213] gpio config ok!