uboot 参数对应着内核模块的参数 module_param

原文地址:http://3y.uu456.com/bp-b399108ed0d233d4b14e6911-1.html

很多时候我们内核驱动的模块需要模块参数来运行,这;如下面例子setenvbootargsmem=8;Uboot启动参数中的红色部分表示模块,蓝色部分;我们举例dm365_imp.oper_mode=;驱动文件dm365_ipipe.c被编译到dm3;staticu32oper_mode=IMP_M;如果uboot参数中没有dm365_imp.op;davin

很多时候我们内核驱动的模块需要模块参数来运行,这个模块参数在基本的驱动概念中有介绍,我们很多时候把他写在uboot的启动参数中,在内核启动时内核会读取uboot的启动参数,这样我们设置在uboot里面的启动参数就可以被对应的驱动模块获取到。

如下面例子 setenv bootargs mem=80M console=ttyS0,115200n8 root=/dev/nfs nfsroot=192.168.1.222:/home/mydemo/test/yaffs/rootfs noinitrd rw ip=192.168.1.175:192.168.1.1:255.255.255.0 video=davincifb:osd0=1440x240x16 4050Kdavinci_enc_mngr.ch0_output=LCDdm365_imp.oper_mode=0davinci_capture.device_type=4

Uboot启动参数中的红色部分表示模块,蓝色部分表示模块里面的参数,黑色部分表示参数的值。

我们举例dm365_imp.oper_mode = 0说明

驱动文件dm365_ipipe.c被编译到dm365_imp.o模块 在dm365_ipipe.c文件中有如下参数对应。

①:

static u32 oper_mode = IMP_MODE_SINGLE_SHOT;

module_param(oper_mode, uint, S_IRUGO);

如果uboot参数中没有dm365_imp.oper_mode=0 那么参数的值就会被赋值为IMP_MODE_SINGLE_SHOT(1)。

②:

davinci_enc_mngr.ch0_output=LCD参数在 Davinci_enc_mngr.c中

static char *ch0_output = "";

static char *ch1_output = "";

static char *ch0_mode = "";

static char *ch1_mode = "";

module_param(ch0_output, charp, S_IRUGO);

module_param(ch1_output, charp, S_IRUGO);

module_param(ch0_mode, charp, S_IRUGO);

module_param(ch1_mode, charp, S_IRUGO);

③:

davinci_capture.device_type=

This defines which driver to use. Use the following settings:

davinci_capture.device_type=0 for MT9T001

davinci_capture.device_type=1 for TVP5146

davinci_capture.device_type=2 for MT9T031

davinci_capture.device_type=3 for MT9P031

davinci_capture.device_type=4 for TVP7002

这里我们可以去掉。

此外:

通过命令“modinfo -p ${modulename}”可以得知一个模块有哪些参数可以使用。同时,对于已经加载到内核里的模块,它们的模块参数会列举在/sys/module/${modulename}/parameters/目录下面,可以使用“echo -n ${value} > /sys/module/${modulename}/parameters/${parm}”这样的命令去修改。

但是这个操作是需要有权限问题的。

module_param(node_name, charp, S_IRUGO | S_IWUSR);

这个用户写权限S_IWUSR必须增加
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值