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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( T/ P$ u5 k. D
#include <linux/init.h>8 e9 _8 R9 c# R6 D' c! y
#include <linux/module.h># Q& p" ~7 N2 n& T3 \# a$ G1 @
#include <linux/kernel.h>! {3 f5 o$ r: _1 [) C" L
#include <linux/types.h>8 \( @$ t& Z& N+ |" j1 M
#include <linux/gpio.h>
* x4 ^! e' X, h4 E. y#include <linux/leds.h>
- Y7 E. \$ d+ q4 k$ k8 t#include <linux/platform_device.h>
. ]9 N+ ]0 M3 U/ Z( ~, l: f
: v# l; Y, z- S8 Z4 G( X#include <asm/mach-types.h>5 |0 m0 P2 ]/ W3 h; `* j
#include <asm/mach/arch.h>3 c; i& d/ C5 N$ H* h
#include <mach/da8xx.h>
& V' |* e3 A$ {* Z#include <mach/mux.h>
- C+ C0 P  T) e. O& ]& Y4 G! c3 P3 [! G& ?. _* A* ~# g( n' O5 t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( m) R" I& a8 a! s! @9 d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# Q5 o+ U9 Z" z! s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 M' |+ h( |. R4 k* h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 M2 e: c0 D7 X" D
# c2 v" v4 T6 m, C/* assign the tl som board LED-GPIOs*/
2 j5 d; l3 [8 E. V2 zstatic const short da850_evm_tl_user_led_pins[] = {
' r+ W- x4 i, k! ^- v        /* These pins are definition at <mach/mux.h> file */
( Y, g  ~) g) [. c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 u" l8 r8 x8 U5 K
        -1
+ G5 c; ^0 b, Q% X};  w: r2 `7 A6 o

; a! @  g: p2 g7 bstatic struct gpio_led da850_evm_tl_leds[] = {- y5 V( w8 q3 ?2 p. F4 l
        {$ I, j! _$ I% t. i
                .active_low = 0,9 a$ q6 n# M/ p$ U$ v2 |
                .gpio = DA850_USER_LED0,* |0 C% j% q. E7 _' Z$ r0 v$ B, g
                .name = "user_led0",2 ~8 C/ X& e8 n
                .default_trigger = "default-on",4 G7 Z# V; Q9 n: \
        },
1 q7 e# O# R6 W        {1 {$ \7 ~! \! k  `# A
                .active_low = 0,
' G. ^% ^( E9 |3 W" u                .gpio = DA850_USER_LED1,
; _- j  \9 e  j- |( P* n                .name = "user_led1",; f( }- _$ K+ j/ v" t2 O7 r' N
                .default_trigger = "default-on",5 D8 e' x1 q! V3 D8 F
        },# d& h3 k3 M- t4 m9 }
        {
, r8 g" Z! s. y7 e( ?                .active_low = 0,
: U6 V& c& ?* R1 Q  o9 a. ^                .gpio = DA850_USER_LED2,
+ P, _5 q7 D. J  z                .name = "user_led2",
  A3 M' q' z! P' O3 Z4 l% L& `                .default_trigger = "default-on",
1 y; `0 K# G5 L3 P" n, ^8 c        },1 L' f; T6 E6 `, X0 U2 y
        {8 @. @8 c4 v% H
                .active_low = 0,
4 {4 ~; n- z# |7 W) {1 F& M                .gpio = DA850_USER_LED3,
# J0 s: e$ i- Q. i4 B                .name = "user_led3",* \& I& p0 b5 S
                .default_trigger = "default-on",
) ]1 V% i9 s5 L" W2 \8 L* s  k        },
% A7 `5 x9 p3 J" }. x) M- V};
1 g9 k9 e: Y' p* V. u9 @9 B0 E) ?7 Q" B1 C; T- j' R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ Q7 g0 y( t* y6 F0 o- v
        .leds = da850_evm_tl_leds,
% U1 Y5 U2 o5 O- o" _2 M; [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 u4 H0 W! v& K  L7 |- G};. n- ]" ~7 P8 v+ E2 L1 M4 G
0 c" Q. \9 d; }* w9 D
static void led_dev_release(struct device *dev)8 _8 w4 L' Z8 X
{7 K) V3 c3 W& ]
};) T4 C: x7 y/ u2 D" U

; d( k( d1 T$ F; D1 k0 `static struct platform_device da850_evm_tl_leds_device = {9 v2 I" D4 H  ]# W) }) c  t$ h
        .name                = "leds-gpio",
& [* P* y- P: y' q0 ]        .id                = 1,
( T" Q: K! \( c( ~" Q        .dev = {
) L4 U  f6 }) L* ]' U                .platform_data = &da850_evm_tl_leds_pdata,% `6 l. @* g! `" e2 d' b7 p2 d+ S
                .release = led_dev_release,/ z" H7 ^& Y* R* i% J4 K9 T( x; D
        }
% T& c: q6 m9 w9 R3 o};
& S3 x" C4 c% U' z* w
- b% C0 a( ~& X/ Z: ?: C. bstatic int __init led_platform_init(void)+ z7 ^' k( t4 h7 P
{+ q0 J2 Q: u) I' s& v8 a( E0 \
        int ret;) y  r. N3 E, Q* y1 Z
#if 01 w0 ~; ~0 {* @0 M% S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& L6 Y# m& j9 A0 h% a  D! ?
        if (ret)
7 x# t% u1 i2 O9 i# \. _! ?, |8 a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' d8 q. f( _. x' I+ Q
                                "%d\n", ret);' J& ^, o" J- Q2 U2 D
#endif  ?2 e) g0 E$ W( ~; {
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 ^" D- K5 M* F) {6 o% u% i        if (ret)
+ X0 r8 ]3 Y' d$ T: V. W                pr_warning("Could not register som GPIO expander LEDS");/ C( r$ @! P) I
        else4 b8 p. g! d0 @5 l' ]* L3 B) a  C: ]
                printk(KERN_INFO "LED register sucessful!\n");
* w* g. D6 j1 j; `& k6 Y! V3 n. O  p# G  X) a
        return ret;5 K* l+ T# j7 c1 E( i9 y
}
  c! U% }& [4 z+ }; h
! }8 Y" s% A& ^8 p. n/ `  F. Gstatic void __exit led_platform_exit(void)
2 E" k, V, j# X1 y# A/ j9 F{
8 B+ ^5 [! P1 G* L% Z, E4 Q4 e  c        platform_device_unregister(&da850_evm_tl_leds_device);
7 {& _9 `9 p4 u; b8 w/ B* `& n# ^) v; Q; t+ _. ~! l
        printk(KERN_INFO "LED unregister!\n");
  _, b; ]* _5 y8 d7 ^}3 a: S) {4 v9 X6 ]

/ A) G) L4 j/ r" Zmodule_init(led_platform_init);
7 s9 M, o& A" b: C9 vmodule_exit(led_platform_exit);8 l' ]7 d9 X& r; G- S

/ z! q5 }, \1 M7 h2 \- JMODULE_DESCRIPTION("Led platform driver");
$ ?$ z' V8 g5 g& d* l+ yMODULE_AUTHOR("Tronlong");/ K! g' J+ _) w, l/ x* _9 {) x, t
MODULE_LICENSE("GPL");
4 |; m2 p! W4 Y# I1 I6 W, W7 l+ o: K: p& j  W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 18:10 , Processed in 0.039471 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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