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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 }. e0 |/ Q1 e1 b9 L#include <linux/init.h>
$ Z& |& e+ t3 w0 d% T' J, |" N# N#include <linux/module.h>8 M5 Y% N8 ?* t* e8 l! o2 P
#include <linux/kernel.h>% t5 N2 _+ R6 f; k
#include <linux/types.h>
6 G0 V( {  _: F$ S  l" T: j#include <linux/gpio.h>
8 y+ t' _# S8 N! z#include <linux/leds.h>: o, D& m  n1 }) D( r: K
#include <linux/platform_device.h>: ]& `& x- n4 X9 l
; j# D4 I9 ^6 U. x: ?
#include <asm/mach-types.h>
+ B" I! q; w& z! W1 {' e8 {$ P#include <asm/mach/arch.h>) c. m) _0 P3 D$ ~& h) K% u
#include <mach/da8xx.h>' i: \; Z9 H7 }! y6 h3 `( f  c
#include <mach/mux.h>* x- x- W. Z3 ?$ o! Y

/ Y5 v2 B& }* ~3 P# R! M, Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 c. \0 _% l$ W& r" h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). r" W4 H# Y1 b: h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" a1 l% D- E7 P2 m! o7 W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 T4 V, f( [: a; ?1 f9 R# w/ V
! j: P4 I3 \8 Q. q5 v) Y8 _( j' ?5 H/* assign the tl som board LED-GPIOs*/' n6 n$ F+ k& ^' P+ m
static const short da850_evm_tl_user_led_pins[] = {
+ k6 T- M! P* r5 T/ K+ F! A        /* These pins are definition at <mach/mux.h> file */
% h4 r& e' S9 ?8 K* |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" q6 x2 g% O, s0 b5 }6 j8 S        -1
% m8 s% K! Q1 B/ m* C};
" B* Z6 e  B7 X, m8 D
- |4 `2 Z7 G& N# e2 P! k( e0 gstatic struct gpio_led da850_evm_tl_leds[] = {; P; ^- C+ v3 B  j) \+ c
        {6 J3 u* E0 _& K) M
                .active_low = 0,
+ l9 v& |; ~: _                .gpio = DA850_USER_LED0,
/ f! ]: W; H; e7 Q4 o; A! o                .name = "user_led0",
# s' c9 o, O2 u. n1 ~1 o8 @                .default_trigger = "default-on",% D/ [6 f+ u& C
        },/ u$ `; p, ^! D$ Q+ m
        {2 l- j0 h2 w: d+ ~/ c
                .active_low = 0,1 q" I3 h8 \9 |
                .gpio = DA850_USER_LED1,
/ P0 R$ f2 d9 |( v$ I0 K                .name = "user_led1",$ Y6 e8 ^" d, t2 f7 Y
                .default_trigger = "default-on",: E  l# O& |) K1 V
        },1 O1 q) V0 S9 t5 f7 T& T* v
        {+ i% o$ w9 K) u& v. x* d9 A5 l" p
                .active_low = 0,3 B: _) d! w/ E" \: a7 l
                .gpio = DA850_USER_LED2,
+ a* {: R: S8 ~# Q" e. C/ g                .name = "user_led2",* p4 U$ E+ j! h/ s# |
                .default_trigger = "default-on",) F4 _8 v. S' v1 @1 ]
        },+ i/ e: s7 f6 R! l
        {; T% m% d+ g0 K, p& k
                .active_low = 0,
6 w: l  f5 o  p6 m8 p" O: X8 _                .gpio = DA850_USER_LED3,
6 ~. M2 Y2 I0 X( ?' ?                .name = "user_led3",3 k: J" F  ^6 e" K
                .default_trigger = "default-on",0 q) K4 C* P9 \3 k5 S1 }
        },( U! J8 b0 G6 K$ }( q2 d
};
7 w' O% }3 p6 B. {4 L# X9 g
% p9 e, m6 a. }7 q2 l: Y! pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 Z- @- y; n, v  [! t6 N4 y2 x
        .leds = da850_evm_tl_leds,7 F/ t1 J0 [$ H2 I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) v/ j, S  H7 }6 b3 z. k- J6 p};  q: y3 Y* V/ H* |: p8 y
1 K: r- z" s' m. k" z( A. l
static void led_dev_release(struct device *dev)
/ l5 J# E: c: G$ J{
) d/ ?; n% P  \6 b};
1 D# H% V8 {/ z9 d, n3 i- i2 S$ u# ^; B+ \6 j" k' @
static struct platform_device da850_evm_tl_leds_device = {1 J; ]! H* Y; a9 m  \5 j
        .name                = "leds-gpio",
3 p9 G- O1 n4 v/ _) [        .id                = 1,
2 Y) y) x4 H; ~; u        .dev = {& x# {6 \' @3 U# e1 m3 @0 _
                .platform_data = &da850_evm_tl_leds_pdata,
4 G  I4 {* s. O+ Z. E9 _                .release = led_dev_release,
+ _& w" D3 J3 F  n* r4 H        }3 D9 M0 J9 P) X) r. E) {* u+ c; S9 b9 o
};
: w) ^* W( W% |; e5 E
# M7 ~3 I2 N" U1 w# Tstatic int __init led_platform_init(void)4 l7 |0 E0 ^' ~- l) x$ ?  c$ v, u0 m
{( }$ l0 u5 l9 P5 r
        int ret;+ C; O* b: y+ D  P( k- k
#if 0+ n; h3 y1 E9 ~8 Z' u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; h# l( f( i0 W8 h: o
        if (ret)
# t1 b& f& M# {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 {) S' ^# O0 G, N$ z
                                "%d\n", ret);7 F/ g' Z+ a' N1 [2 v
#endif4 d% ?% J( j) s9 Q6 W  {0 \) d
        ret = platform_device_register(&da850_evm_tl_leds_device);
; L6 W9 y8 q3 r! W4 W- p/ z        if (ret)
' Y) D  U8 T* u7 @0 g, e                pr_warning("Could not register som GPIO expander LEDS");* R; E% Z1 D0 ^- `% m
        else+ [9 x: Q. D0 V3 X- ]$ n
                printk(KERN_INFO "LED register sucessful!\n");" j" q6 ~" W1 ^

1 K6 S. r1 \( x        return ret;% S) W# C4 o! c. q' v
}
( Z) p) E. Q8 X  u! b) I3 x# T/ h: [& }- \9 g2 r  Z; o0 e- U4 P
static void __exit led_platform_exit(void); d7 a% ]' `$ i0 Y. x
{
( ]' l) O+ D, j( }        platform_device_unregister(&da850_evm_tl_leds_device);0 q% e5 C: G6 W- W6 {# ]
: A0 L: Y5 H9 B6 M# A9 \0 v
        printk(KERN_INFO "LED unregister!\n");
+ Y4 {1 ~& B2 g  G% a0 ?% R/ @: Q# \}  Z/ [! W- c; X/ v- ~% S# W$ x/ S
' m  K5 o1 x: e1 E3 x, w) X  j
module_init(led_platform_init);
& V% U7 F$ r/ ]$ qmodule_exit(led_platform_exit);8 p: Z! ^" P. H5 S

: n: C9 i7 R! l6 O, a3 k5 RMODULE_DESCRIPTION("Led platform driver");
% D& I' Q, x$ N; zMODULE_AUTHOR("Tronlong");$ Z* `; [) @- P  E% ?
MODULE_LICENSE("GPL");7 L" l3 g% g, u+ x3 _  k5 E: N
* n) ]8 Q+ t8 w$ ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 22:35 , Processed in 0.039732 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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