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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- f% C. s/ M+ j5 g* Y/ [#include <linux/init.h>9 Y' \5 E( Z9 n3 X
#include <linux/module.h>
, O7 V/ l, _, ~- q#include <linux/kernel.h>! ^- X" q! D  t0 B# A" w/ Y
#include <linux/types.h>" Y- _$ k1 u) P4 g- J& ]: d$ ~0 t! X1 V
#include <linux/gpio.h>- B. l% I/ d; Q' i1 O
#include <linux/leds.h>. M6 [2 i) @5 D" `' }( I
#include <linux/platform_device.h>+ ]: Q! i! g4 b) c
( [, H, o, J4 @+ M9 l1 p3 R% y' b4 b
#include <asm/mach-types.h>& z2 T/ G* W+ P
#include <asm/mach/arch.h>
3 h2 B- F: h9 K8 }6 B, P#include <mach/da8xx.h>3 {% z7 p, ]$ }) [; L
#include <mach/mux.h>
4 B5 a" S/ c$ A" b5 c- N3 z6 v- E8 f& ?$ N4 I; X" L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 B3 M0 k$ _% W+ v3 W% Q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# m7 g( y1 y+ R8 ]3 R. b+ w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" P9 k) @& |: {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 H* V+ b0 j* V5 P& h
. {: i) X% F( m( D/* assign the tl som board LED-GPIOs*/
* z, q. u6 c; I2 Tstatic const short da850_evm_tl_user_led_pins[] = {0 R8 ~' ]0 Q- A4 w7 h% F
        /* These pins are definition at <mach/mux.h> file */
( C4 ~  F! J) Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 U" v. b; r7 x0 w; w
        -1
, X  T% J4 G. q: j, U8 T};
! ?3 c5 m+ u4 X: r  }9 l  w  V3 w
+ }8 D3 }% E$ g" e8 O6 O1 `$ ?static struct gpio_led da850_evm_tl_leds[] = {
6 |2 w+ i8 ?, j/ F6 I" e4 i        {
* d+ [; _% b$ J/ Q  W, O% ]% U+ L                .active_low = 0,
  g5 q$ \& _  o                .gpio = DA850_USER_LED0,
8 ~! H% X) g8 z0 _+ b                .name = "user_led0",4 \4 X0 |* v0 s
                .default_trigger = "default-on",
* y  A  ?* K3 Q        },, `, B( ^) \" O
        {; w2 r7 n' ?; O
                .active_low = 0,6 j- ^  D# F3 K# C
                .gpio = DA850_USER_LED1,2 U3 h  q% x* v# n, I
                .name = "user_led1",
  f0 z7 O1 |& \                .default_trigger = "default-on",
) A8 t; k. F+ t0 e4 t& T' h0 U& ?: }        },
3 ?5 W5 k$ O, J/ X- i, `; ]8 H        {4 N+ ~2 V4 |# H  }7 ]4 i
                .active_low = 0,/ g8 Y% f: j; E4 v( z
                .gpio = DA850_USER_LED2,
+ N' ]- l- H  L* w7 A% l& C1 n% x, o                .name = "user_led2",
& b% W' e& q: X6 J; y2 k                .default_trigger = "default-on",5 h& h/ H, a6 [3 }7 K
        },. v" K2 m/ }: B0 W. l: E
        {5 r# P- l0 d: f9 z4 y6 J; Q  T
                .active_low = 0,
  {& Q% D7 h% n; c& T                .gpio = DA850_USER_LED3,
+ q' R* c# N- \0 \6 H                .name = "user_led3",
$ _  }6 i3 r/ d' w, }( l6 X                .default_trigger = "default-on",& o+ k% G2 ?6 }. N/ I  L% T" H8 b
        },0 I; K* H8 o1 d# a: _2 @) \
};
% s* n; W3 `( |- O3 l7 W, f4 j; s7 q) }. |5 m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ e' F& Y! o$ F* k+ U; a# G& M
        .leds = da850_evm_tl_leds,
5 ]" ^- ^' u! o1 U0 U& y! q& r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' A# G7 y: M' \/ k' @- c};# D$ i5 b- B7 u% V
/ Y8 L& P8 l" J6 o6 F
static void led_dev_release(struct device *dev)* @- Y, ~* {/ U. H
{
3 _+ z9 l: z8 ?/ w+ @/ d};
) B+ L% N4 @) l) A: @, G5 v3 ^$ ?) |7 N& H
static struct platform_device da850_evm_tl_leds_device = {
: p' C8 o0 p: v) J% s$ A" v; `  t        .name                = "leds-gpio",
( H$ {6 _/ n3 P& `8 H$ z- o6 N        .id                = 1,, T+ S1 Y* D/ ^4 W4 H/ t+ {! P
        .dev = {
/ y. [8 x3 b! q7 g% C3 f9 I8 |                .platform_data = &da850_evm_tl_leds_pdata,) U% O3 U6 L3 d+ `  z% ~
                .release = led_dev_release,
6 G2 k4 j- f; ^) J8 J5 @        }
+ @: m' ^: [3 e/ M};
7 u# ]# u. ?+ b2 i) z5 P* u
% t# @8 o" e1 U9 m  F0 q" B+ O& i' Tstatic int __init led_platform_init(void): b7 Q. `$ c3 k; @5 M( h$ Q3 x, O/ C: J
{7 H, q* _$ v) F4 A' t: u' c
        int ret;4 \+ i2 o8 R) I
#if 0( I( g) Q) Q& Y, J! X1 ?! t8 i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 C, \% n. E2 a& C1 U3 k: ?
        if (ret)7 x  Y2 ]/ R' j8 \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 [, O' Z8 [: b* f
                                "%d\n", ret);
6 z! g9 v. y4 v5 a  O#endif
% R2 r# ~* B9 @! W        ret = platform_device_register(&da850_evm_tl_leds_device);
* m+ v$ q( ~% b/ M        if (ret)( x% n. K! ~  J5 l. ]9 |
                pr_warning("Could not register som GPIO expander LEDS");
9 o  ?: O, c" |8 f& z5 ~, ^2 N$ ~        else
4 |7 \5 Y) ~7 Q                printk(KERN_INFO "LED register sucessful!\n");
4 V5 n& s2 Q5 Y2 E1 M* z% a  G! o4 }1 P0 P
: D, Q9 r% U' Q* L: E* o        return ret;% r' T* ~/ n5 x5 Z3 n) J
}" K. E% ^) _: I; E  h- B( C( S
: n6 ?0 s/ f$ a  @( K4 H# v
static void __exit led_platform_exit(void)
1 Q- s+ `0 t" {" C9 k8 q' e9 v{  R5 f: Q- i1 [+ q
        platform_device_unregister(&da850_evm_tl_leds_device);
- ]& e* g8 E0 u4 i- a
0 d4 E! l/ H. E8 U! l        printk(KERN_INFO "LED unregister!\n");: _5 g8 J. U/ O( e* ]
}. Q  [$ F6 `; ^" u7 Y

7 U* P) n% X3 X1 u! |+ b6 pmodule_init(led_platform_init);
0 q& m: |+ E3 ?- v/ k/ U( dmodule_exit(led_platform_exit);
, [% s0 B. G2 z$ D9 L3 `2 m4 v( u) s
MODULE_DESCRIPTION("Led platform driver");, L& N" M2 b9 s  b
MODULE_AUTHOR("Tronlong");/ i) I. U% }; W7 o; J& `, \' ]* R; d
MODULE_LICENSE("GPL");/ e% M0 N% k" y1 o# r3 d4 j

0 l  s. ^7 z* A8 u; ^# `. \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 02:21 , Processed in 0.037501 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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