芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 4133|回复: 0

【Zynq】【uboot修改】在uboot启动中初始化i2c设备

[复制链接]

该用户从未签到

58

主题

72

帖子

759

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
759
发表于 2022-1-22 14:46:48 | 显示全部楼层 |阅读模式

引言

众所周知,Zynq开发板在启动linux系统时,大概是fsbl->uboot->kernel的步骤,而uboot其实就是一段程序,那么我们是不是可以在里面加一些自己想在uboot下执行的程序呢?答案当然是可以的。

举例

这里以添加一个sil9022的初始化程序到uboot里为例,由于sil9022要使用i2c来初始化,所以我们需要在uboot初始化i2c后,再使用i2c初始化sil9022。先找到初始化i2c的代码,它在uboot源码路径下的commom/board_f.c文件里,我们先在这个文件开头编写一个名为sil9022_Init的函数,然后在初始化i2c完成后的地方调用这个函数,并打印SIL9022: ready表示初始化完成。

image.png

然后编译uboot,上板看看效果

image.png

我们添加的打印信息出现,说明添加的程序已经被执行。

这里只是举了个例子,有的操作确实更适合在uboot里执行,例如必须在内核启动前执行的程序,或者没必要在内核中执行的简单操作,都可以添加到uboot源码中。

回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2024-4-29 05:58 , Processed in 0.150821 second(s), 35 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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