如何防止Beaglebone外围引脚的劫持
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止Beaglebone外围引脚的劫持相关的知识,希望对你有一定的参考价值。
我已经定制了我的beaglebone的设备树。某些片上外设(如I2C,UART等)以及P8和P9接头上的相应引脚已启用,而其他一些则被禁用。
为了防止用户劫持外围设备占用的引脚,我需要防止用户导出,导出,改变外设使用的引脚的方向和值。换句话说,如果用户试图执行
debian@beaglebone:~$ sudo echo 4 > /sys/class/gpio/export
应该导致错误(通过设置在/boot/uENV.txt中启用uboot叠加时
enable_uboot_overlays=1
在提到的文件和评论中
disable_uboot_overlay_video = 1
导出LCD引脚会导致这样的错误)
然而,我编写的.dts文件启用了I2C1外设,但允许用户更改SDA和SCL引脚上的方向和值。
我将节点添加到am335x-boneblack.dts文件中,如下所示:节点
pinmux_i2c1_pins {
pinctrl-single,pins = <0x158 0x32 0x15c 0x32>;
linux,phandle = <0xdd>;
phandle = <0xdd>;
};
被添加到“pinmux @ 800”节点,
i2c@4802a000 {
compatible = "ti,omap4-i2c";
#address-cells = <0x1>;
#size-cells = <0x0>;
ti,hwmods = "i2c2";
reg = <0x4802a000 0x1000>;
interrupts = <0x47>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0xdd>;
clock-frequency = <100000>;
linux,phandle = <0xa0>;
phandle = <0xa0>;
};
被添加到“ocp”节点,最后
i2c1_pins ="/ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c1_pins";
被添加到“__symbols__”节点。
我应该更改uboot还是.dts文件中应该添加一些代码?提前致谢
答案
现在我知道如何完成任务!在一个内核模块中我写道:
...
#include <linux/gpio.h>
gpio_request(4); // for requesting GPIO0_4
...
加载此LKM可防止用户导出这些引脚。
以上是关于如何防止Beaglebone外围引脚的劫持的主要内容,如果未能解决你的问题,请参考以下文章
Beaglebone Black–用 UART 连接 ESP8266 (ESP-01 版)
带有默认地图视图引脚的 Swift Mapview 自定义调出视图