程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11261|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( W( i. k: H; o8 d9 F" A6 \#include <linux/init.h>
5 v1 z3 z: \% H2 Y1 Q1 E" X#include <linux/module.h>0 z! Q* J) y; s" f
#include <linux/kernel.h>0 ]6 [3 A( x. H% Y( y) R
#include <linux/types.h>) l- b& v* ?* ~2 }, i  ]
#include <linux/gpio.h>4 r% m. }# {) @& F+ ~0 V
#include <linux/leds.h>
2 D1 Z- t! L6 u( i& g& D#include <linux/platform_device.h>" j" s2 r$ e; B) L3 L

$ @) M- n. c0 F; A9 s; H" V0 x#include <asm/mach-types.h>" ]# a% d7 o+ d: Q. Y
#include <asm/mach/arch.h>( ]3 ^4 ~- [* R" q
#include <mach/da8xx.h>. j# I3 V' m# N: S
#include <mach/mux.h>, S, X- c4 i! B. l
/ d4 w+ c; U$ T! O& I7 s$ Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! s/ D7 {! l% ?- k$ n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! ?& z2 I( M8 E% {0 t
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" M2 W9 k& M3 l9 f1 Y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 d' g8 T6 u" C$ p$ U9 _: d
7 O% q6 T8 S7 R  G) c6 a6 D
/* assign the tl som board LED-GPIOs*/
8 ^+ b1 O/ |! b/ Istatic const short da850_evm_tl_user_led_pins[] = {5 ?  @3 `- `* o+ Z, n! ?* r
        /* These pins are definition at <mach/mux.h> file */; R* O8 T& {; }0 `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, a" t# o1 K4 ]: o: `0 m8 c1 x        -18 q2 Q8 q  K/ |$ o9 z
};
( N& [9 ~+ G5 D* _& U! c, l0 {# ^. y8 H" t. \$ c) k
static struct gpio_led da850_evm_tl_leds[] = {
! I/ V! |+ R& J% `1 `3 a2 I; e& S        {: v) y4 t7 D6 |8 K8 l8 B
                .active_low = 0,
1 @4 u" t) ]7 d4 s* f                .gpio = DA850_USER_LED0,
+ A* K( E" m6 \0 V                .name = "user_led0",
* P# W5 l/ |% j6 G                .default_trigger = "default-on",. h, t2 D" _/ B1 y7 A
        },7 O$ a# u5 i4 r8 \* K9 G
        {
$ a- A$ ]  q; T1 b: h( o/ k5 F& G                .active_low = 0,
6 N& v$ _& w4 F' J# {4 v% i% y                .gpio = DA850_USER_LED1,0 F4 U. M; c5 L
                .name = "user_led1",
5 j  g3 s, e* r2 H% B                .default_trigger = "default-on",. U6 P5 H- F  b
        },
2 K2 j9 z1 U% Y* Z" E" d        {
! P; H/ i( T. X6 J3 C8 |                .active_low = 0,
5 z, @6 @* _/ t: W) _9 T- e                .gpio = DA850_USER_LED2,
/ g2 \) j: T& A% {4 ?4 }& I                .name = "user_led2",
3 I1 R* m3 S9 b2 i                .default_trigger = "default-on",
- K( p0 l2 I6 U2 Z2 D        },
8 r- ~* h0 k0 m% X0 @6 _6 F+ j+ \        {
2 N9 b* K4 Y& R& w) ]; p  g; U                .active_low = 0,
7 ]# w) q2 n+ j8 x% Y                .gpio = DA850_USER_LED3,
  @- k$ K5 I- t' Q2 G                .name = "user_led3",& e# u$ U$ }+ H, M% x; s
                .default_trigger = "default-on",
; D; Q" n# Y$ _1 F8 o' d( Q        },
( C3 q( ?$ P6 k" u};" I# L% ~( G/ `3 o( J1 h+ w
) i1 S1 ?( d+ b: K' k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; ^/ ]! [) h4 [5 |        .leds = da850_evm_tl_leds,
- ~* s$ P5 r+ D2 G        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 s, q+ W% _# D% m1 C' }" a
};4 i: Q  P+ U6 Q* D0 b: p+ a, c5 u7 ^
# K9 M5 u4 S/ |$ j; P/ R/ P9 E
static void led_dev_release(struct device *dev)1 x" Y: {% a+ X  l" J% X
{& k" W+ g1 s- p: H( Q6 X
};
( l9 q. l( |& S* ~5 b: L
% E$ h! _4 [% k4 H' e, C' _6 i" S! hstatic struct platform_device da850_evm_tl_leds_device = {
3 s+ W6 _8 J# J' E' n        .name                = "leds-gpio",
0 q/ y3 g9 K- v) W, {* o        .id                = 1,, a/ g7 R% c9 I  y( ^3 v
        .dev = {% Y) ~: ~4 M( f4 ^8 U
                .platform_data = &da850_evm_tl_leds_pdata,
; L! C7 ^+ ?( _) `) M                .release = led_dev_release,
1 g' o0 V$ d  W, h- |5 f/ U9 [, l        }& J5 M0 H5 z  z+ E
};
4 Z( I0 t4 V6 S. _9 s
1 g' x0 U8 S' S% k* Qstatic int __init led_platform_init(void)
* B. G- a- I% T{7 m! |2 l& x1 M9 _
        int ret;
6 U5 e; x9 t1 A7 o; p. t4 r#if 0
( Z- N% Q: A2 U0 t8 B* ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' M; K# O( j7 o- p" Y+ h        if (ret)9 i& ?4 _: ]- U8 I% Y: I( q7 r' C8 [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' E: Z$ f+ H  W$ ]                                "%d\n", ret);- U; ]  A/ U. Z8 @) ?
#endif+ ^: k& y2 C3 i- z4 M2 I
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ C- R* n$ a1 N& V# E. m5 ]- V        if (ret)
' E1 z  S  }) v6 p. J                pr_warning("Could not register som GPIO expander LEDS");
, `1 Y  P1 ]- H8 Q( V+ X6 t        else+ @; J2 g9 C9 a' o
                printk(KERN_INFO "LED register sucessful!\n");$ j: K! C7 p! a# h- S
* Y' a8 c! }" S0 a+ I1 _, ^1 T
        return ret;
+ [* E0 J9 a7 \3 ^( E}
: C1 Z" y+ t2 f5 r
" ]2 h0 I  P% `. U+ e5 B+ i; O# \static void __exit led_platform_exit(void)
! z' R: h+ d( o' Z' [# ~) M8 M9 X8 |{$ H1 V) c" P, n% D; ~" x( \
        platform_device_unregister(&da850_evm_tl_leds_device);
" }" W% ]+ m, d8 i
& b# U/ Y( X: L4 b5 A7 U' \" D        printk(KERN_INFO "LED unregister!\n");
& C. t9 t# F% Q9 t1 l3 `}1 _; O0 m" c$ ~7 c; x4 ]) D

8 W% T/ J8 D+ e' Imodule_init(led_platform_init);  k1 d; e; i+ @4 x% ]5 ]
module_exit(led_platform_exit);  C0 H! u8 p+ n- l- w/ O# H
# L0 F+ Z+ h# m7 v$ {6 S7 }
MODULE_DESCRIPTION("Led platform driver");' {  u6 o" R" \0 F
MODULE_AUTHOR("Tronlong");. j7 ^8 }. i/ `/ u, t- F
MODULE_LICENSE("GPL");3 r  z4 P( y- [
& I7 s) \8 i# A3 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-5-8 19:22 , Processed in 0.038868 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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