程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 l2 Q  D8 d: Z#include <linux/init.h>
) h6 X. M6 v0 ]% V& i  q#include <linux/module.h>) F) q1 Q, J4 D) F
#include <linux/kernel.h>( E) \7 \1 G& J+ U$ ]" i( y0 q
#include <linux/types.h>7 M, B+ T, g  ]0 m, D
#include <linux/gpio.h>9 B( r7 _; u) ?
#include <linux/leds.h>! P* w. ?' l) ~
#include <linux/platform_device.h>( w2 |: U3 X9 K$ W+ ^* h) i+ O; ]; o

! Y0 b. x" c! @- c1 n" O" J: d#include <asm/mach-types.h>6 `0 q7 s4 t" x( S6 o2 u
#include <asm/mach/arch.h>5 b7 S. \$ q* v3 _" w1 J- N! v
#include <mach/da8xx.h>
# _' T# l) L- \7 [( g- A% }#include <mach/mux.h>
/ |7 \$ ?7 F& [% t3 s$ f7 I) b  H
; x! ]: N: C9 @; i3 G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. V+ \1 P% D% c5 ^' q, |- v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# l. _7 w% z& i. Z- {0 x6 w8 ^  R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 N2 b, _. W/ z; h" g3 k6 P% d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ l, r$ f, c! ~( F- f$ r4 Q

5 {. f4 b$ ]" \( O2 |5 M0 I8 t2 Q/* assign the tl som board LED-GPIOs*/# Q. s' X2 K0 j0 l
static const short da850_evm_tl_user_led_pins[] = {1 p& I- L  Z8 w$ z+ F& h9 E
        /* These pins are definition at <mach/mux.h> file */; y' c# T8 P9 i  H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* Z0 q, D0 K7 a$ |0 S: a* W, S% c) D' f
        -1  N3 s" f0 ^/ q* W9 N! M
};
0 F( `( @2 ^+ y( m5 \$ t9 N; L! z/ p; G3 k+ X8 H) q& M2 O( J: K
static struct gpio_led da850_evm_tl_leds[] = {/ {  B/ f6 {$ _" b6 ~
        {, J7 C. X% d: z7 l2 ]
                .active_low = 0,
5 E3 ~0 p4 ^& u2 e+ p. H                .gpio = DA850_USER_LED0,! J4 G) _0 K8 z' [' w* X
                .name = "user_led0",
: k! P& o0 T6 W/ Z2 R8 A2 n0 d                .default_trigger = "default-on",
/ d) J6 I0 [! E        },
; F) r/ n) E5 w* t        {0 B7 M; j3 A* ]/ M/ i, Q; K
                .active_low = 0,
1 [- b* E' p1 e7 a# ~0 t4 A. ?                .gpio = DA850_USER_LED1,
0 v4 B: J% f6 ]; ]: X2 L                .name = "user_led1",
  c, k& a9 |! E                .default_trigger = "default-on",
4 @2 i1 N* x0 I6 e6 T        },
* S1 f2 U+ g3 b1 g! C$ r4 g        {
  `: r: c7 a* K; \0 c                .active_low = 0,
3 D3 e" [, Q" s, ?1 W                .gpio = DA850_USER_LED2,
. [: e" k! _9 f& P: y8 j                .name = "user_led2",3 Z! {3 C3 b8 _9 M6 U
                .default_trigger = "default-on",9 l2 \5 ~" ?6 e5 n  a' n9 N
        },
6 o9 ^1 s+ l& ^. `        {
$ u0 o. W/ b+ j) {, O) V6 h                .active_low = 0,- k3 e! K! h# J; F& a6 |+ X$ ]
                .gpio = DA850_USER_LED3,
  H" `2 L9 k  r2 a6 {3 p                .name = "user_led3",
! n/ S" J2 k$ O                .default_trigger = "default-on",6 j) y* d6 m' W/ x( o: |
        },
$ K9 M: @! D  L4 }; @: E9 N8 D};7 R/ y# j5 N3 |+ P& B$ K7 O- F) U

9 {) L, \; M' Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- j' Z4 J% N8 h        .leds = da850_evm_tl_leds,- K" J; l) \, i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  J$ }1 G9 a' _; T; V
};
' W0 K/ c2 L( b1 `/ a# V* z/ G$ o: D0 ], o# n# q5 P
static void led_dev_release(struct device *dev)
- \. E# ?9 y0 F+ e2 d/ z& V{# Y. S$ k& J4 O+ b. P  e; X5 f
};
4 j) J0 \; U+ @$ R' a. l  x) p+ Z* D$ P! w
static struct platform_device da850_evm_tl_leds_device = {
7 D% q; J' s- z        .name                = "leds-gpio",
  B1 Z4 d0 W. o" d6 K" R4 h        .id                = 1,
# f: H/ ~) X0 g7 j) B# D: ~        .dev = {8 f  f+ X/ z4 @/ r
                .platform_data = &da850_evm_tl_leds_pdata,
3 h6 J8 D0 c" L                .release = led_dev_release,) s& Z& K: K6 G: _6 b2 F$ F
        }
3 ~" N/ S0 f" m8 T: r};( ?) u, a4 Y$ ^; x5 C" G7 j
$ N  v& X, }8 x! k0 b" Z+ J
static int __init led_platform_init(void)  J( y( R2 T1 k5 d) M+ e% k
{
( Y' e' z. r* Z/ g8 n2 R        int ret;6 R! J1 \2 h1 d  n. b4 S! G' q
#if 0) @& K# P# I/ |. m8 F1 K1 w6 x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" G& Y7 z, [9 O9 ]
        if (ret)
* H, o9 K  f9 j) T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 m" {# l" Z5 E, t- X5 X  b! U1 Y
                                "%d\n", ret);8 k. }0 D, _' N$ l6 n7 w
#endif
: ^$ E+ h# ^  P& c- U/ v' K7 _! F8 A        ret = platform_device_register(&da850_evm_tl_leds_device);
9 Z- W4 u- X  o5 v8 Q' f        if (ret)% y* b/ O$ G& _  c
                pr_warning("Could not register som GPIO expander LEDS");
5 h: Q# ^1 z2 x, H# U        else2 a1 X+ X9 A% X( W1 e9 d3 i
                printk(KERN_INFO "LED register sucessful!\n");1 h- t; F6 ~$ |/ E5 o5 m$ g( n
  F0 A& `; P/ T; R6 \" N
        return ret;' {  I* \1 y! [5 Q7 E! C7 Y
}
; {2 L" B( T2 S" F/ K, m
: S2 W& H1 |7 m3 j+ z2 c1 K  Astatic void __exit led_platform_exit(void)/ ?9 @0 Q! n' _, V& C5 B5 j
{! ~6 X, \* h  V* I0 v9 U$ u
        platform_device_unregister(&da850_evm_tl_leds_device);- F  S3 r" x. W9 f1 K( X8 \6 L

# @: c2 r6 g( q3 y/ [) }0 O6 z        printk(KERN_INFO "LED unregister!\n");7 f) j( S% C7 {. C1 g
}
2 M8 p% x( N: {' R
9 r& M- ]% U+ X# y# G& |module_init(led_platform_init);
  q- {5 C) u7 j7 w$ N7 pmodule_exit(led_platform_exit);  D( g% b! E. ]. S9 x$ E% x

( b, |: L& i1 E6 tMODULE_DESCRIPTION("Led platform driver");
1 I% q- ]/ ?' Q; |. D, bMODULE_AUTHOR("Tronlong");
' V0 s$ K! z- r, C$ ~  e; eMODULE_LICENSE("GPL");' {  t0 ~9 Q+ [6 L+ q$ k: L
. V7 }" U  W% T# n/ Z- }. `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-29 09:23 , Processed in 0.036938 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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