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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# W' `0 g9 M) w/ v& Q
#include <linux/init.h>
; G; z4 U8 I* g" C9 W" w+ ^#include <linux/module.h>( _5 _. k) q1 v5 {; Y. X
#include <linux/kernel.h>
* g- ^  Q$ e9 C5 r( B#include <linux/types.h>7 ~% X7 p( a0 W9 T
#include <linux/gpio.h>
2 I: u3 Q" Q& W# J( J#include <linux/leds.h>- F* K7 ^8 @5 R* L( ~
#include <linux/platform_device.h>
! y; k: L; n/ Z# F7 O' |% h5 X
/ a) J7 N5 [5 q9 z+ g#include <asm/mach-types.h>. R( j: k  r! g2 g- \  s0 n
#include <asm/mach/arch.h>
+ S5 Y1 j6 \2 R4 i1 c# c#include <mach/da8xx.h>
3 G5 E% T  o  W#include <mach/mux.h>! A" i/ u) M- k
7 G9 f1 I# b/ c& u( r; X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 k! V5 [1 h  k& {( z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 w; v4 h7 S, J" D' Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' B9 T; d9 A% O2 O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% ]3 l9 n0 h7 A: E! @: K1 h" ?2 g$ t
- T+ U- A8 G* e6 k- F7 m7 y
/* assign the tl som board LED-GPIOs*/2 T2 t2 L% v. K) }; e
static const short da850_evm_tl_user_led_pins[] = {4 a' W! R  j0 A6 v( N, ~" {; m
        /* These pins are definition at <mach/mux.h> file */9 S; x5 o7 \8 \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; B8 u& s: A$ F  D        -1
- K# r$ R( d9 n# B' S0 j/ c1 O};' Y4 t, @5 w. C- k! c' \& z

3 }) i( `2 {$ Q" B  ^! Ustatic struct gpio_led da850_evm_tl_leds[] = {
- l" |9 D0 ~1 J, J' B        {
' {, V6 R+ M! `; \7 b! ^; S                .active_low = 0,
4 u. `6 z' }1 ^$ `( i# ]                .gpio = DA850_USER_LED0,
0 r9 n0 E% s" |8 {                .name = "user_led0",. _6 o- i1 E! \6 X) _; J
                .default_trigger = "default-on",: y6 f# H( N: P8 d
        },
* p8 E; e3 G; p$ v: Y7 z        {
3 M6 J; E7 K/ [! n9 w$ r1 @8 B                .active_low = 0,
6 M0 ~+ ?& k' {                .gpio = DA850_USER_LED1,
' g' e% g& `. [2 S: _" O9 V) Q                .name = "user_led1",! {- m! d6 v- k2 L6 e1 n' a
                .default_trigger = "default-on",. G3 m+ p7 l# q  A  e/ m4 W
        },
+ }7 }  }9 {, E& B        {
7 R) O/ ]& I4 Q6 k4 O5 u/ Z                .active_low = 0,/ ?6 Q( i* _9 P
                .gpio = DA850_USER_LED2,
% o2 p2 w1 I- G+ j( x2 E                .name = "user_led2",
3 s% C9 i" Z* B4 Q. i                .default_trigger = "default-on",, x4 g5 o: x7 a- J; ^; ?8 Q
        },+ Q6 r) G9 F. X# _/ p
        {
3 I+ M* c" l1 j$ I                .active_low = 0,6 h: g; g2 p$ |
                .gpio = DA850_USER_LED3,
  G  c# I7 X* @3 i$ M+ R                .name = "user_led3",9 z2 t2 r4 a: f6 E; r3 o: q
                .default_trigger = "default-on",
  i4 s" G; M  y) f5 _        },
" d: d) |% N% ^: T};
- v- U( M* [* \1 i$ a+ Q+ A
  ~; n" b- ]  Q! _  x4 Xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- A# o$ U8 S& j4 x        .leds = da850_evm_tl_leds,
9 C% \3 w& Q. ~        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 ^' Z7 q0 Z$ I, o
};) d" I  P, H! x- @

5 V; i- P5 y/ b9 o% ?3 y, Mstatic void led_dev_release(struct device *dev)8 g5 p7 J% V9 h' i& V
{
9 @% }( y5 ^9 A) w8 k/ Z; z};1 F: ]8 S$ z) h8 {1 A8 C

$ L% g0 F' _2 I5 T% Z3 Zstatic struct platform_device da850_evm_tl_leds_device = {, u" @7 l1 Z6 z: P" h
        .name                = "leds-gpio",9 X7 ~( R) C: H4 ~
        .id                = 1,7 @/ _- o3 ^9 g. T; f( {: d1 t
        .dev = {2 h4 q0 B% L, @; ]6 e
                .platform_data = &da850_evm_tl_leds_pdata,
2 T7 t. n& I% J( W                .release = led_dev_release,
8 r! E. R. g/ X7 a4 R  t- h        }
1 z( C3 G4 {; n$ A+ J};+ S" F$ a. w& I' f2 C* `8 t

6 \; V. |1 o/ n: w  x/ vstatic int __init led_platform_init(void)' K! \% ^1 R6 {" S9 \# S
{
. m6 ^( Y1 C6 B) X/ @1 F- `        int ret;+ g* d2 [4 U, ?9 X
#if 0
% t1 s: n9 V6 B; _        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( ]5 Z' i" X0 P& f' f( g* K. m* D        if (ret)- Y8 I" {0 p; e* Y/ ?0 ?) C3 E
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ A# Y* F4 u  I$ M  U3 J: i
                                "%d\n", ret);7 V: ?4 T! U0 u7 e2 M; [) `0 ?5 Q
#endif5 z3 c) k3 d: k. }9 H
        ret = platform_device_register(&da850_evm_tl_leds_device);
  Q% H: M7 i5 S* f- q& J        if (ret)7 n* O! k# T- d8 D" b, ?" u
                pr_warning("Could not register som GPIO expander LEDS");; S' Q2 y! T  [5 w
        else( j: A* b3 \, Y/ E5 U, b6 ~$ i, e
                printk(KERN_INFO "LED register sucessful!\n");* _9 l  l- v; ?8 o+ d2 a5 L6 _& C
+ W; e3 s5 S4 j! |* h2 f3 s
        return ret;
- E; |1 M, s4 l; U" s7 i; f+ A' d}
' y' y% w: p# K) z
+ w, `0 n, e8 a4 N8 ^static void __exit led_platform_exit(void), X" \8 R# F* |) C
{( u- ^8 T4 A8 Y: A3 |
        platform_device_unregister(&da850_evm_tl_leds_device);( `& V3 C7 ~* g
" n$ B6 ^4 F9 g
        printk(KERN_INFO "LED unregister!\n");+ E9 ?0 u% ~# i0 J, ~& r5 d
}
# B- Q1 ~) \8 T4 _- X* p7 c+ i6 x/ ~* s; c6 n" ~% q  T# c
module_init(led_platform_init);9 G* _6 T; i' G
module_exit(led_platform_exit);
3 q2 b. H( U: A, K6 \+ L- J4 o- ~! Q0 T; Z
MODULE_DESCRIPTION("Led platform driver");
" E" ^/ k; Y" U+ `, {MODULE_AUTHOR("Tronlong");( s, \# d6 e& x
MODULE_LICENSE("GPL");! P& c& Z- F5 y( i, }+ _
8 x& E0 I7 d- s* r& ~3 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 16:22 , Processed in 0.339241 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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