gpt4 book ai didi

linux - 应用程序在 bash 脚本中运行时找不到字符设备文件

转载 作者:太空宇宙 更新时间:2023-11-04 05:27:47 25 4
gpt4 key购买 nike

我试图在 bash 脚本中启动我的串行端口应用程序。由于某些奇怪的原因,应用程序无法获取/dev/ttyACM0 设备文件。如果我直接从终端在/dev/中输入 ls -la ,设备文件可见。当我在 bash 脚本中尝试相同的操作时,除了 ttyACM0 之外,每个设备文件都是可见的。

在终端中:

root@pc:~$ ls -la /dev/ttyAC*
crw-rw---T 1 root dialout 166, 0 Feb 18 17:25 /dev/ttyACM0

在脚本中:

ls: cannot access /dev/ttyAC*: No such file or directory

所有其他设备文件仍然可见。有人知道这是如何实现的吗?

这是脚本:

#!/bin/bash

# gpio defs
mcu_reset=49 #gpio2_17
mcu_erase=50 #gpio2_18

dir_export="/sys/class/gpio/export"
dir_reset="/sys/class/gpio/gpio$mcu_reset"
dir_erase="/sys/class/gpio/gpio$mcu_erase"

# Initialise Reset and erase gpio
if [ ! -d "$dir_reset" ]; then
echo $mcu_reset > $dir_export
echo out > "$dir_reset/direction"

echo $mcu_erase > $dir_export
echo out > "$dir_erase/direction"

echo 0 > "$dir_erase/value"
echo 1 > "$dir_reset/value"
echo "* GPIO directories initialised!"
fi

# erase mcu flash
echo "* Erasing device..."
echo 1 > "$dir_erase/value"
sleep 0.5
echo 0 > "$dir_erase/value"
sleep 0.5

# reset device
echo "* Resetting device..."
echo 0 > "$dir_reset/value"
sleep 0.5
echo 1 > "$dir_reset/value"
sleep 0.5

# Flash device
#$(bossac -e -d -w -v -b argv[0])
ls -la /dev/ttyAC*

# reset device
echo "* Resetting device..."
echo 0 > "$dir_reset/value"
sleep 0.5
echo 1 > "$dir_reset/value"
sleep 0.5

最佳答案

发现问题了!当 'echo 1 > "$dir_reset/value"执行时,连接到 Linux 的 MCU 会重置。 0.5 秒的 sleep 时间对于 MCU 再次启动来说太短了。

关于linux - 应用程序在 bash 脚本中运行时找不到字符设备文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28588991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com