1.新字符设备设备驱动中,ioctl中的cmd以及应用程序中的cmd:
要按照Linux内核的约定方法为驱动程序选择ioctl编号,例如:
#define DUMP_REG_CANFD (_IO(0XEF, 0x1))
#define DUMP_REG_QSPI (_IO(0XEF, 0x2))
注意:不能使用简单的 #define XXX 1这种定义方法,否则,ioctl不认识,也就不能实现内核和应用层之间正常的交互。
2.内核中获取时间戳的函数:ktime_get();
3. cat /proc/sys/kernel/printk: 7 4 1 7 ; 分别对应console_loglevel、default_message_loglevel、minimum_c onsole_loglevel、default_console_loglevel
4. 测试板端SPI接口:
1.首先将mosi和miso短接;
2.借助测试程序进行接口测试:
有一个spidev_test.c(此程序可能是官方给的spi测试程序,见附件)程序,将改程序最后的transfer(fd)函数屏蔽掉,将其下的while(1)打开,然后交叉编译;在设备树里面的spi节点下, &spi0 {
status = "okay";
slave@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <10000000>;
};
};
将该节点编进内核,进入linux shell,ls /dev 会看到有一个spidev0.0 或者 spidev1.0 (0.0表示spi0的片选0;1.0表示spi1的片选0); 最后运行测试程序,用示波器看mosi端有无数据出来;