讨论beaglebone,并请教一个spi的问题。

2019-03-26 16:05发布

 各位,最近在调beaglebone的spi驱动,但是遇到些问题。 我是按照http://communistcode.co.uk/blog/blogPost.php?blogPostID=1这篇文章做的。 在编译uimage前,menuconfig的地方把driver下的SPI里面全都选择了y, 重新编译了uimage,下载到sd卡(覆盖了原来的), 然后把sd卡插到beaglebone上,上电启动,打开minicom(ubuntu下),可以看到正常启动。 问题是:  root登陆后,cd到dev文件夹下,ls -l,没有发现有spidev1.1文件。 请问一下各位,问题出在什么地方? 谢谢! 我的邮箱gooodo@163.com,欢迎交流。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
agoodog
2019-03-27 09:28
谢谢楼上

今天我把spi驱动编译成了模块,生成spidev.ko文件,拷到sd卡的Angstrom/lib/medule/drivers/spi(这个路径记不清了),然后插到beaglebone上,上电,minicom上cd到spidev.ko所在的文件夹下,然后insmod spidev.ko,
结果报错。
编译内核前修改了arch/arm/march_am335x.c文件,如下:
Step 1) Add the following struct to the kernel source file arch/arm/mach-omap2/board-am335xevm.c

static struct spi_board_info bone_spi0_info[] = {
{
.modalias = "spidev",
.max_speed_hz = 48000000, //48 Mbps
.bus_num = 1,
.chip_select = 0,
.mode = SPI_MODE_1,
},
};


Step 2) Change the spi0_init function in the kernel source file arch/arm/mach-omap2/board-am335xevm.c so it reads the same as the following:

static void spi0_init(int evm_id, int profile)
{
setup_pin_mux(spi0_pin_mux);
spi_register_board_info(bone_spi0_info,
ARRAY_SIZE(bone_spi0_info));
return;
}


请问一下还需要修改哪些地方?

我下载uimage和spidev.ko文件的时候,用sd卡读卡器,在ubuntu下直接拷贝过去的,不是用的cp命令(就像windows下拷贝),请问这样做是不是可以?还要不要sync一下?

我明天试一下把spi驱动编译到内核。

结果再到这里来反馈。

多说一句:现在的beaglebone的资料太少了,我把我遇到的问题贴到这,希望对大家又点帮助。

对了,按二楼的计划,你7月2号就开始调spi的驱动了哈,等待你的结果。

谢谢!

一周热门 更多>