讨论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条回答
zhdphao
1楼-- · 2019-03-26 19:44
< menuconfig的时候应该能看到:SPIDEV 选择项。
zhdphao
2楼-- · 2019-03-26 22:39
 精彩回答 2  元偷偷看……
chenzhufly
3楼-- · 2019-03-27 04:02
 精彩回答 2  元偷偷看……
agoodog
4楼-- · 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的驱动了哈,等待你的结果。

谢谢!
chenzhufly
5楼-- · 2019-03-27 14:36
注意一下这个地方的配置,我的测试是可以的 spi1.jpg

spi0.jpg

agoodog
6楼-- · 2019-03-27 18:59

 

 

1:楼上你是编译到内核还是模块?

 

2:编译的uimage是不是放到sd卡的angstrom/boot文件夹下?

 

3:angstrom的文件系统和uimage的关系大不大?也就是说3.1的angstrom文件系统可不可以和3.2kernel编译的uimage一起使用?

 

 

我今天编译的uimage启动不了,从minicom打印看,走到半截不走了,已经解压kernel,解压到半截。

 

我感觉是在menuconfig没有配置好,明天按你的说法再配置一下试试。

 

谢谢斑竹。

一周热门 更多>