OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 173|回复: 2

[XILINX] mpsoc-p5, linux下驱动pl侧开发问题

[复制链接]

18

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2012-9-13
在线时间
31 小时
发表于 3 天前 | 显示全部楼层 |阅读模式
开发模式
在ubuntu下单独开发mpsoc-p5的linux内核驱动,然后使用 mkimage工具配合its文件,生成了带设备树的内核镜像文件  image.ub,然后tftpboot 单独更新 image.ub文件并启动运行。

按照上面的开发模式操作ps侧的资源,做内核部分实验等都没有问题。
但是最近在linux下添加了一个i2c设备,i2c的管教配置为EMIO. 理论上需要更新BOOT.BIN文件 跟新bitstream  才能正确输出i2c的信号。

我遇到的问题是
按照常规开发,设备树里添加对应设备,内核里驱动文件编译进入且compatible属性和设备树里的属性相同,这样驱动和设备就能匹配上,内核里面的驱动文件的probe就会执行。按照这个思路
我反复检查了代码,确认了设备树添加是正确的,内核里的驱动文件也编译了。 但是在 /sys/bus/i2c/devices的设备文件里就是 没有文件。 kernel的启动日子里也没有probe的打印。  感觉很奇怪。
后来更新了 BOOT.BIN 文件后, 用同样的 image.ub 文件在   /sys/bus/i2c/devices 出现了设备文件,probe也有打印。
太奇怪了。
我的疑问是更新BOOT.BIN文件 会顺带更新bitstream,也就是fpga 硬件资源会被重新配置。这个文件不更新,pl的管脚无法正确输出。 但是内核原有的运行逻辑是不会变得,
也就是没BOOT.BIN文件,/sys/bus/i2c/devices 里也应该有设备文件,只是 应用层代码open这个设备时读写无效。   现在是不更新BOOT.BIN文件。/sys/bus/i2c/devices 里设备文件都没有,不会probe.  这是为什么呢?
到底那个阶段影响了内核的启动过程

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2012-9-13
在线时间
31 小时
 楼主| 发表于 前天 20:30 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2024-3-19
在线时间
89 小时
发表于 昨天 15:36 | 显示全部楼层
郭震2009 发表于 2024-9-25 20:30
有没有 大佬解答啊

如果probe函数执行失败了,/sys/bus/i2c/devices下面也不会有设备文件,可以在刚刚进入probe函数时加个打印函数确认一下,到底是probe函数没有执行还是执行失败了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-9-27 06:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表