TI中文支持网
TI专业的中文技术问题搜集分享网站

利用mmap函数读写spi的寄存器,实现dm365与FPGA通信

原来我们在dm365上运行linux2.6.18(dvsdk_2_10_生成),利用mmap函数读写spi的寄存器,实现dm365与FPGA通信,读写都没有问题。

但是由于其他功能的需要把内核换成了linux2.6.32(dvsdk_4_02_生成),相同的程序,硬件平台是同一个,程序运行不报错,但是无法读写数据。

请问这是因为内核有什么不同吗?

Shine:

请问其他外设寄存器可以用mmap读写吗?还是只有SPI口不成功?

Chris Meng:

回复 Shine:

你好,

可以对比程序运行后SPI相关寄存器,看看是否是新的内核的相关驱动配置有差异?

user5174990:

回复 Shine:

其他的可以,在新旧两个内核下都可以用mmap读写EMIF的寄存器使其正常工作,但是spi相关寄存器只能在旧内核可以,新内核不可以。

新内核启动时,日志中有下图的信息,linux启动时把这些不用的外设的clock关了(其中就有我用的spi4)(您在另一个帖子中回答我了)。

我在linux配置选项中没有找到clock使能相关选项,想在linux源码中给spi4的clock使能,正在尝试修改但是对源码不熟,如果有人改过帮忙回个帖,谢谢啦

user5174990:

回复 Chris Meng:

spi的相关驱动配置基本一致(虽然两个版本内核选项的名字有点差别)

Chris Meng:

回复 user5174990:

你好,

建议你看看dm36x arm subsystem guide里面的PSC相关章节,看看SPI4相关的电源是否关闭了(LPSC 39 for SPI4). 如果是,按照流程打开。

user5174990:

回复 Chris Meng:

电源没有关闭,而且用的是同一个硬件平台,加载低版本内核,运行同样的程序都是可以的。

下面是低版本内核启动时的日志,和上面新版本内核启动日志对比相同的位置,没有出现Clocks disable unused…

赞(0)
未经允许不得转载:TI中文支持网 » 利用mmap函数读写spi的寄存器,实现dm365与FPGA通信
分享到: 更多 (0)