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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( g: \  {" z4 ^# U# u: f+ a#include <linux/init.h>6 a6 x9 `7 d0 B
#include <linux/module.h>
) R' \( q* _$ x7 b! j4 @) s; U% @#include <linux/kernel.h>4 W8 N4 C: @0 B9 B( I" Q
#include <linux/types.h>! l& h, v) i9 B& W5 e
#include <linux/gpio.h>; S$ F7 }3 a% W1 [$ V& O, K  \
#include <linux/leds.h>
. H* p! M, o0 }7 x7 _8 ?#include <linux/platform_device.h>% Q+ l' M1 p" W

9 w6 ]5 r/ K8 ]7 v4 ~5 X6 `#include <asm/mach-types.h>  ?/ s% l& n/ I' _
#include <asm/mach/arch.h>
; `. M) _% B) R# i' s#include <mach/da8xx.h>
, i: K$ s1 L# o' q#include <mach/mux.h>
. a. D3 g; S2 _" R' i6 }/ E3 t' u- c5 ^+ \
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. S0 h2 H8 V1 j6 h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) k8 `3 f+ [7 E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 }% p/ A$ s/ E' \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ M) R+ u* Q% e% @3 W/ P  X  V6 t- E
/* assign the tl som board LED-GPIOs*/
% y6 W( |! J6 @1 J* dstatic const short da850_evm_tl_user_led_pins[] = {
9 i( u+ y9 S' A  K        /* These pins are definition at <mach/mux.h> file */' M8 Z& w$ q5 c- n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- ^" ^- }! {$ V9 B
        -19 k) Q2 e1 Q- x' H
};
$ r3 C( {2 c; z. m* `% A: a
- _' P( u! F8 j0 H- \# P* nstatic struct gpio_led da850_evm_tl_leds[] = {5 W* ]4 C; {9 S
        {8 k% F% K- R/ x5 I1 h* q( Q, I
                .active_low = 0,( A8 ^0 V9 a4 R( b8 J# C% u
                .gpio = DA850_USER_LED0,
& l* U# g4 k% _$ q                .name = "user_led0",
8 z! |1 e; [$ A6 V' f) |                .default_trigger = "default-on",
0 P/ H7 M' `. K* X; b; A' F# `        },) N6 `" g* g5 Z3 P/ g. S
        {
2 W( G; J/ x9 [* i# ]                .active_low = 0,. f! s2 J2 F- ^9 A/ j% U$ g
                .gpio = DA850_USER_LED1,
' ]- I% y4 q8 T5 f                .name = "user_led1",
& z, w9 O0 s  E' S7 E$ b                .default_trigger = "default-on",3 o; j* f% y" Y, ?7 W7 K( l# E
        },
5 h& @! A+ d$ u# q' S        {
. g1 \( t- O9 \9 z7 r                .active_low = 0,) g% i$ m6 L' C1 O/ F0 e. }4 E4 l* q( ^
                .gpio = DA850_USER_LED2,; A% h% l5 @6 G' d  ?8 [. \$ P
                .name = "user_led2",- ^' Q9 g0 `2 I+ V6 A5 S8 h
                .default_trigger = "default-on",; X0 E9 K; W& b% z; ~
        },
2 N8 B6 E1 c" c) K1 I% H        {
* p2 \/ ^. P: ^: l# K2 \+ R! d                .active_low = 0,/ \2 X9 z' b: p* I9 r
                .gpio = DA850_USER_LED3,! C5 z; y" a2 i4 P
                .name = "user_led3",
& t: \5 y5 J, t5 I5 k                .default_trigger = "default-on",( |9 z; y% H# d: R/ z% {/ t
        },
  i" N& x/ i8 v5 Z) m& K: u) q};; [+ Z% r/ h4 \& m& P9 G

- `, e$ G* G7 [1 S+ o$ bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 o' d; ^6 u5 r) M6 Q, F
        .leds = da850_evm_tl_leds,
3 E( ?( S, K" [6 o9 h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! p) |$ F6 C, z. m- d3 e- t
};
! i' l* ~: b/ O2 g. h
/ r9 W5 k5 z# m2 wstatic void led_dev_release(struct device *dev)# D, X" c1 E3 W& K  ~+ }: [$ B
{, q( J1 @4 b7 ~" {% \$ A
};- ~; O" K# S6 ]0 O& @
9 ]) [% [0 z% P! E, G  D
static struct platform_device da850_evm_tl_leds_device = {1 D" N5 K/ o% K) G# t
        .name                = "leds-gpio",
( \4 u" V" f5 }        .id                = 1,
* r, S& w% }, o5 W. B        .dev = {' j, \$ X) _0 C+ v* n
                .platform_data = &da850_evm_tl_leds_pdata,
  l; a: z2 c2 \4 N5 W                .release = led_dev_release,! f( f0 G9 B8 e6 O! B4 h
        }
. P- n/ w& P# }- o& Z8 h};
2 `& V6 p" A8 K! f% _9 L
2 ]8 u  E# t7 N, tstatic int __init led_platform_init(void)8 v, L4 j! k+ _
{: Q, E! Y" j& `5 H
        int ret;
6 H2 D$ Q( S' {0 f8 F( d#if 0
9 _1 c, }9 z; I( n  P. ]" q  x( R        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 g8 D) X' |- }6 T9 M
        if (ret)
* e& I  b2 X+ X& Q5 `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: k& h4 ~; R' L, M& w- X' \1 j                                "%d\n", ret);
2 x: y" s* E* I+ `( n  k% K#endif' t% G3 X& m) U5 C
        ret = platform_device_register(&da850_evm_tl_leds_device);$ ^1 n4 g7 k- v: N$ a1 b- n
        if (ret)
+ P  V  v& W% _                pr_warning("Could not register som GPIO expander LEDS");
4 {) J. m7 _( A6 y        else( u% G" `8 [- U- u
                printk(KERN_INFO "LED register sucessful!\n");
& I- T% F3 y: i& }5 G$ ~! C1 P, m1 D' A( {* c' R: f3 _* d# H1 Y
        return ret;4 y  ^$ H' }* i8 g/ k
}
4 v# [  c6 F5 v$ j$ N- e* `
4 h+ ~7 {/ d, ?3 P+ b" q3 `0 qstatic void __exit led_platform_exit(void)
2 }0 E' B; V# y: A0 E4 A! R{, `5 }5 m. O2 y  m
        platform_device_unregister(&da850_evm_tl_leds_device);4 X5 i* W, ?- b6 @, D" m

9 Z" F8 M- r' S* H7 }        printk(KERN_INFO "LED unregister!\n");
9 k3 r! S5 y; r5 `/ J. |* U* a}
0 ~$ J, K$ ]' z1 K
  }% R& {8 S2 n! `) vmodule_init(led_platform_init);$ ]; K& e6 d6 N
module_exit(led_platform_exit);
# B( L- M) d# s/ B5 P5 _. M
: J$ ~- W" |2 G4 D0 mMODULE_DESCRIPTION("Led platform driver");& I4 g. g+ A: u- e  y0 M$ v- p6 n- I
MODULE_AUTHOR("Tronlong");
1 b( r2 p1 _2 n# Y# K  A. h' W7 aMODULE_LICENSE("GPL");0 ~2 U2 V* f6 U
8 v4 u* q8 T& {9 N: s% e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 23:30 , Processed in 0.038729 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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