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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 S" i4 C+ K9 e6 X3 I#include <linux/init.h>: Z% C: r$ D! K; {* t% G
#include <linux/module.h>
) u( B# ~! D6 M' d  I* X1 c  e2 H#include <linux/kernel.h>
+ o; i( V/ u' l, @1 P#include <linux/types.h>
) J  |# v0 C& Z7 ?& `* q#include <linux/gpio.h>- A& Y3 s# E4 c- V- y, t
#include <linux/leds.h>% @+ ]4 X: L( J/ y3 c
#include <linux/platform_device.h>" a: }3 `+ K* G% T% L$ n
" E  P4 m3 b; m3 R) D' `
#include <asm/mach-types.h>& \, j& O; d0 r* a" L( m$ N; D
#include <asm/mach/arch.h>
! b: u! J; t: O; v% c1 c#include <mach/da8xx.h>! y9 X6 m' b$ C! }7 _6 e
#include <mach/mux.h>. H2 A1 h7 q6 H

$ o- f5 D, i; F( b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 d) T- x# ~3 n5 S, v" v: C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. z$ ^- e2 M8 e" _" i. e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 o2 Z( `- w3 g, z( x+ g# b1 c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ h% u" j9 {' a) F  ]7 N1 _" v& n6 `6 A; ]$ y: v5 h
/* assign the tl som board LED-GPIOs*/
0 [2 [% k. f# l4 t5 jstatic const short da850_evm_tl_user_led_pins[] = {
) O+ O" T7 [" t0 v        /* These pins are definition at <mach/mux.h> file */
. ?$ }. f: N9 v' f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% M* q% M0 ?! W9 y8 d& n0 `, c; o        -1; J2 c( P; i$ d( B3 q
};
1 E' t4 h* |' ]2 [/ }" h8 r3 |! _- T: @1 h& B; }: X
static struct gpio_led da850_evm_tl_leds[] = {( k* Y( e; N# @6 K+ w6 u
        {
' X4 i+ q. b& f                .active_low = 0,
7 i1 [& T3 V. E6 ?- `                .gpio = DA850_USER_LED0,5 `. t9 z8 w6 X& ?& h" b
                .name = "user_led0",6 w" Z5 _/ B5 }8 J: g( d
                .default_trigger = "default-on",( f6 v" d" ^8 w, j  W, o
        },* G- T5 j, V+ g9 j" a$ e% U
        {% n5 `3 S- q# g
                .active_low = 0,
1 N3 ^' M1 U3 k! l. W                .gpio = DA850_USER_LED1,
7 D, {/ ]1 h4 f) h                .name = "user_led1",/ l: W- ?, j1 v4 H$ [, d
                .default_trigger = "default-on",4 ~9 i5 P' c8 E$ H/ E5 @% M
        },/ {5 \* M, c  g# U/ L/ \( Q
        {
0 w2 W4 W  J2 r  X% ]1 a1 d                .active_low = 0,5 Z# L* z8 A& o' T
                .gpio = DA850_USER_LED2,
+ R! c# r  D2 c' M4 D                .name = "user_led2",2 f  h7 b" J( Y4 a/ E( u
                .default_trigger = "default-on",
3 D- p5 s5 @) r+ k( c& k) H- C$ m5 g        },- g; x, A8 L% K( z+ C8 I
        {# F# P& H, l- B6 N! z
                .active_low = 0,2 `& c1 h: S6 W; A
                .gpio = DA850_USER_LED3,
$ c8 H" T2 Y2 s# I7 q8 w                .name = "user_led3",1 E; q2 L, d! R  v+ Q" E
                .default_trigger = "default-on",
' U/ z8 B# e; x* U        },
) d* h7 [# u+ D' `4 @, _( E; [};( K8 F) s' ?" M6 E
4 c& u8 W3 K* p3 f8 @' p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, y- X. B; ?; O' S4 E
        .leds = da850_evm_tl_leds,& i, c  w( e% G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! |0 ~- Y- j4 Y  V& U; X};
% T8 c$ h- R& P8 F" [+ f5 a$ A' s; y5 _/ B; x# F( k% n7 c8 ?' u
static void led_dev_release(struct device *dev)
) G  i( ]. l$ f$ I+ E& q{
9 T/ i5 W% v0 H# i+ e& L3 N};( B2 r+ n( F3 K' P  L7 F' g
( b1 B' a. r6 A3 E; p- V* I5 D
static struct platform_device da850_evm_tl_leds_device = {- \0 V) S- j! b8 e' P7 @" X& H- p
        .name                = "leds-gpio",$ L( \. Q# u6 a) S# }
        .id                = 1,$ v- S& Q/ x. @) E) C
        .dev = {
3 z* q. K* Q2 G& H! q7 i                .platform_data = &da850_evm_tl_leds_pdata,
9 I- i0 H% ^& l% r: p- E5 I8 v                .release = led_dev_release,! Q' Z  Y+ t+ C* I8 I* g
        }% H" r; v4 ?( G
};, V7 @5 h5 ^# w) ~% A& f

7 P' a) D1 S: G) V. j+ F8 o" @/ estatic int __init led_platform_init(void)
, `! [% V8 j# _9 y{# I4 c+ p9 d$ ]
        int ret;
! H& \- b6 B! e) T#if 0
6 ?( M  ~* h4 \$ ~) M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- s4 z7 r; ^6 d1 t, f        if (ret): L) w% S, ]. k+ i  {4 x
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% S1 e9 c" r( o" v/ @( H* ]                                "%d\n", ret);) `" ?. D  r" w' `4 `) R4 y3 D
#endif
' ~; }+ A* p! [        ret = platform_device_register(&da850_evm_tl_leds_device);
0 y2 k$ l8 X* S$ \2 y+ ^, Q! q2 @: R9 z        if (ret)  }1 t$ w1 ~% W& i
                pr_warning("Could not register som GPIO expander LEDS");' Y/ x: m% K7 f) q4 o
        else: e1 S, l  k3 M. i# @& u6 E
                printk(KERN_INFO "LED register sucessful!\n");
5 T+ R+ w, e( h/ r* C2 T" R+ {( L/ R$ K5 x7 V$ x
        return ret;- s& C; @, Y7 z0 U! |6 I5 I
}0 O8 I/ i3 _- E: U

4 ^0 Z7 r. [, t! _9 R; f9 Lstatic void __exit led_platform_exit(void)
! p6 @2 m, w- R% u{
& z  R) s8 `$ G5 B0 I. [: G/ F        platform_device_unregister(&da850_evm_tl_leds_device);. c% ~( u0 p$ s9 ~

3 J% N5 W! K) n! y4 Z. S! Z        printk(KERN_INFO "LED unregister!\n");
, @9 k0 P4 H/ A}
  [1 m; _* H0 ^6 w: p, J' _
! v% f+ H: o; {. ymodule_init(led_platform_init);0 x$ ^! i& c: t' n3 Q
module_exit(led_platform_exit);/ C9 C- H( v- B" E4 T' p
. w4 [" |, c, G9 b7 }) T  `
MODULE_DESCRIPTION("Led platform driver");  {$ B* i! h; `" y. a2 `. [
MODULE_AUTHOR("Tronlong");) ]  ?  o, i) n+ B* t+ W
MODULE_LICENSE("GPL");/ o5 d# l8 `( S3 D! V0 r
# ?" l5 r+ I  W  W5 B' K; J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-19 07:17 , Processed in 0.040071 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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