我有一个 BeagleBoneBlack Wireless,我想使用 SPI(和 I2C)。我发现很难获得有关如何在 BBB 上设置和使用 SPI 的明确说明。首先,我不清楚 BBB 的默认配置是什么。我似乎有两个 SPI 设备:
$ ls /dev/spi*
/dev/spidev1.0 /dev/spidev1.1 /dev/spidev2.0 /dev/spidev2.1
Run Code Online (Sandbox Code Playgroud)
我似乎也有 I2C:
$ ls /dev/i2c*
/dev/i2c-0 /dev/i2c-1 /dev/i2c-2
Run Code Online (Sandbox Code Playgroud)
我不清楚这些总线是否实际上多路复用到引脚,或者它们是否真的不可用。如果它们连接到引脚,究竟哪条总线是哪条?
我尝试使用引脚多路复用信息(来自此处)进行检查,该信息告诉我对于 SPI1 芯片选择 0,我应该使用偏移量为 0x19C 的引脚,因此我查询了该引脚上的模式:
$ sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 44e1099c
pin 103 (44e1099c.0) 00000002 pinctrl-single
Run Code Online (Sandbox Code Playgroud)
它作为模式 2 返回,这对我来说不是很有用(它不是 SPI)。我试图按照有关为此设置覆盖的说明(从这里),但这需要对我的内核进行一些调整,即使那时似乎也无济于事。
请有人指点我一些说明,使这更清楚一点,并且理想情况下与我使用的内核版本(4.4.30)相匹配?
我正在使用 Freemarker 生成一些简单的 C 代码。我正在生成如下所示的行:
#define MY_CONSTANT (0)
Run Code Online (Sandbox Code Playgroud)
从表单模板:
#define ${name} (${value})
Run Code Online (Sandbox Code Playgroud)
我正在生成一堆这些,我希望它们像这样出来
#define MY_CONSTANT (0)
#define MY_NEW_CONSTANT (42)
#define MY_OTHER_CONSTANT (101)
Run Code Online (Sandbox Code Playgroud)
所有列的值都对齐。是否有捷径可寻?我需要为其编写指令吗?
提前致谢。