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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ D% x, A' B6 m: h#include <linux/init.h>5 }0 N2 v; p. h
#include <linux/module.h>& b! i1 {3 {) {! _7 `5 S; ^, g0 r
#include <linux/kernel.h>
1 R4 {+ ^6 D- K) q* s: f! X#include <linux/types.h>* E7 e8 L! X# i
#include <linux/gpio.h>) m& [$ s( _' Q  b  {4 T) a) r
#include <linux/leds.h>3 }0 k: ~# Y# E/ F2 Q
#include <linux/platform_device.h>
, t* v* p& X: T$ ^  m$ k: d& ]
# t2 ~, Y( R3 g$ n4 F- n' r9 {#include <asm/mach-types.h>+ V9 m1 Z' P  F  f; @3 H5 Q8 Z
#include <asm/mach/arch.h>7 D4 e- _+ x- U
#include <mach/da8xx.h>
& H( k2 H6 {! `  [! J; _#include <mach/mux.h># ~. x; C5 j. z

- v9 E. @& W2 O$ q3 f7 d: {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 S+ }' P* q; h3 V7 J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) \, i: U8 @" ]' i#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 k6 W$ l6 A  B6 C& C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* d9 D2 Y" m" F/ Y2 T: I1 A
1 J6 S0 D' x/ y* R, l8 ]/ c/* assign the tl som board LED-GPIOs*/
) H6 B9 A! A& E3 w; tstatic const short da850_evm_tl_user_led_pins[] = {+ G8 [3 v: k* s2 ~
        /* These pins are definition at <mach/mux.h> file */
  }7 S0 M+ l! ~) t) w/ t% `! Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. ]5 y3 i9 _6 |( A9 S6 Y+ @        -1
$ b$ Z: o9 t0 E7 G};
+ G6 [; M: E1 Y7 ~4 |) T$ t% F% i1 D2 l+ C# d" L8 d) E
static struct gpio_led da850_evm_tl_leds[] = {
" E7 d! ~' {9 O# I. T6 l% U$ b        {+ ~! G$ [" J3 q  k9 ?
                .active_low = 0,
( p& o5 T1 @7 _9 I3 K5 _+ I                .gpio = DA850_USER_LED0,/ X2 f" A0 s' a  f* c
                .name = "user_led0",
" E1 J8 E' w2 A/ }1 w                .default_trigger = "default-on",9 z9 Q3 U: S; N# q0 ^  h' X
        },
, W" n6 {* a" u. y        {
- f/ ~/ N& A9 |6 f                .active_low = 0,
; A0 F- ~% p: C3 T$ {                .gpio = DA850_USER_LED1,
% A6 W. K, e3 \+ I+ g; J                .name = "user_led1",0 a+ D- c; R2 z  _. I1 T6 L0 \
                .default_trigger = "default-on",: a) |  e  n9 `, X
        },
! D" y# B+ H; j; f        {. C% K. n" G8 g1 `* e( t7 I) _
                .active_low = 0,7 z! T% l0 g. }" [+ |. \* n
                .gpio = DA850_USER_LED2,6 l7 }; e$ D$ N$ y0 @3 v/ C0 F
                .name = "user_led2",
# u, n" y  a+ t  a0 z$ ?                .default_trigger = "default-on",3 C4 F* O. p1 A9 `. e$ `3 l" E
        },' u) D$ {  x( t1 H" T$ P; y
        {
! R# b3 S& t/ ]. r                .active_low = 0,
" F: V& m% j8 |( X3 _. K7 f3 v. x                .gpio = DA850_USER_LED3,
0 n, \8 P2 I4 u4 D                .name = "user_led3",8 }* e% G2 _6 z/ }* h) U! K
                .default_trigger = "default-on",
$ b- r/ m" m" O- J4 }        },
9 ~& W. g0 e: J, U- x; G  D};
5 \' J( k' P) n6 v: T) v: Q0 S6 p$ k8 d
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- O7 e5 S  Y/ e- |! W
        .leds = da850_evm_tl_leds,) Q0 V: ?4 q- I" u2 k3 \- S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* f! ~9 t7 c4 H! b/ b};7 T% H9 v, M! Y, s& w; R$ j0 j

! \0 d5 _# Z3 h" Wstatic void led_dev_release(struct device *dev). b% Y2 D$ \  `1 [; w
{: n% o( E% H$ f% j% I# V# n- E
};
0 r2 W9 O4 L7 h5 C6 s) W' X2 a( r6 K/ e0 G
static struct platform_device da850_evm_tl_leds_device = {% m3 i1 Q5 J  M" ?
        .name                = "leds-gpio",  C; B9 a  s+ m# l! ]  C
        .id                = 1,* [/ a$ D% v+ B, L/ D) `
        .dev = {( Y0 K2 D8 g9 N0 m
                .platform_data = &da850_evm_tl_leds_pdata,9 @0 m9 A. ^: P$ a8 G* x0 r- V' r
                .release = led_dev_release,) R# k. X+ t) o
        }
% S# C% N4 K, f/ ]7 l/ R};
3 u! D4 r9 Y; \, b' E) V. U
7 _3 o$ O/ m; f; q1 D. f" Kstatic int __init led_platform_init(void)7 f/ d+ \0 f  Z  i
{# r" j) W3 V- c$ r& B$ k
        int ret;* R. c, N; t: E* K/ [/ g2 W! v
#if 0+ }0 }0 L! L; s: Y8 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: H* o8 H, y: q4 t/ C        if (ret)5 }0 N* P* V" e/ u( T  r
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 T% L/ g- x/ }
                                "%d\n", ret);
7 P/ y2 q, c; o* u! r/ ?4 T6 s#endif4 Z% i- t+ |4 l: l! w
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 e, w) K& Y3 e6 O% L0 G& j        if (ret)7 H- W3 _; Z1 Y6 ~3 a
                pr_warning("Could not register som GPIO expander LEDS");- h& b# c5 R! i% F
        else
" f0 M" Q/ \3 l$ R                printk(KERN_INFO "LED register sucessful!\n");
5 ^' p3 \; u3 q% R: V5 d" c+ ]* J7 t' R) i
        return ret;% ^' O, }; V( w' C6 e/ q( U0 T, F
}
; o9 Y3 M# X( e6 `' b$ \' f$ M$ L, T0 q6 B! R
static void __exit led_platform_exit(void)
# i; _7 z  O5 Z6 F* h) `5 ?{
. K5 ~9 n6 U( J  O6 }" ~* G- ?        platform_device_unregister(&da850_evm_tl_leds_device);+ N* c5 ^0 L! X& d+ y5 S  `+ k9 y

0 K8 Y8 @0 k$ h' K& J, l3 L* H        printk(KERN_INFO "LED unregister!\n");1 r" f. P+ w7 L0 O' d& G
}
4 D$ Q" u4 \7 H9 ?- S' {( X
6 {; |: `' v* |) Jmodule_init(led_platform_init);% _! Z  H. S- q9 Q
module_exit(led_platform_exit);. @, A* o( z5 Q% V
4 A/ Z# F' g7 }# i% p3 _" P2 h9 }
MODULE_DESCRIPTION("Led platform driver");
0 Z+ K/ f8 d% S+ K* |. r: AMODULE_AUTHOR("Tronlong");
9 F& w1 Q% h9 w. T! FMODULE_LICENSE("GPL");
5 K: u; f  M7 D# p4 Z. E
' ~( e: ~' m! _& n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 03:15 , Processed in 0.053606 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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