我在我工作的项目中使用了在Android上运行的Beaglebone黑色。我需要使用UART1。据我所知,我必须配置UART1的MODE。它必须是MODE0。我可以通过以下命令通过adb来完成:
echo 20> / SYS /内核/调试/ omap_mux / uart1_rxd
echo 0> / SYS /内核/调试/ omap_mux / uart1_txd
一切都很好。但真正的问题是,我必须在应用程序内部进行此配置,我正在编码。但是我没有权限执行这些shell命令,因为我没有扎根。所以:
1)如何根据我的beaglebone black来执行这些shell命令?
2)或者有没有办法允许写这些文件?我可以通过adb执行chmod 777 / sys / kernel / debug / omap_mux / uart1_rxd并在我的应用程序中拥有写权限。但当然它不是一个解决方案,因为当beaglebone重新启动时,权限将丢失。
我只想使用UART1(或任何其他UART)进行串行通信。但是所有shell命令都必须在我的应用程序中执行。我怎么能这样做?
答案 0 :(得分:0)
我找到了解决方案。我正在为可能需要它的人发布它。
1)将具有Android映像的SD卡安装到您的PC
2)打开控制台并安装rootfs分区
3)使用nano命令打开init.rc
nano init.rc
4)有shell命令,它们在启动部分运行。将以下shell命令添加到您选择的位置:
chmod 0666 /sys/kernel/debug/omap_mux/uart1_rxd
write 20 /sys/kernel/debug/omap_mux/uart1_rxd 20
chmod 0666 /sys/kernel/debug/omap_mux/uart1_txd
write 0 /sys/kernel/debug/omap_mux/uart1_txd 0
5)保存文件并使用SD卡启动Beaglebone。
现在你有权读/写/ sys / kernel / debug / omap_mux / uart1_txd和/ sys / kernel / debug / omap_mux / uart1_rxd。它们的模式设置为MODE0。