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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 x6 T# _, Q% _' O#include <linux/init.h>6 [: q: l5 x' x8 ?, u
#include <linux/module.h>
% y; h+ i7 {5 X7 @6 S8 E#include <linux/kernel.h># w0 m+ n4 M3 a. {! y
#include <linux/types.h>
2 ?& |' X( N. |9 R#include <linux/gpio.h>4 Y/ z' q# \# x- I1 t! m
#include <linux/leds.h>
$ X7 h) @) V& q$ r, w' i#include <linux/platform_device.h>7 f' h. U# x2 [- Y4 ~6 z5 x9 k
( [# z* r0 f2 R8 H. B
#include <asm/mach-types.h>+ L6 S0 j. g+ X3 a  V
#include <asm/mach/arch.h>
2 g# q  v# B! {; S! i' a#include <mach/da8xx.h>
3 y* c) F% L+ n! B1 Y* q; `- I#include <mach/mux.h>3 v" r- C: J5 u1 O: E4 Q$ R

+ J2 S' s8 h' Y  I& R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: g1 w/ ?0 l( S+ e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; }  j+ J4 m5 h" ^5 R5 T, m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# N. v- |' ^5 \# t0 v5 M6 }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, Q/ h! s  x8 ]- t0 Q6 q' o, c2 p  {1 a( d' C/ o* _
/* assign the tl som board LED-GPIOs*/; t+ ]( R: Y- }
static const short da850_evm_tl_user_led_pins[] = {
) {# r+ |- y8 R# Z3 @$ f' D        /* These pins are definition at <mach/mux.h> file */9 |( Z  }* q+ y- e) g3 g  H0 A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 T; V- X: y* \* i; Z+ T2 x$ v& k        -1
2 L) H5 y5 g$ X};: W+ ]* W9 E* S( B
: h# w* {, ^0 @: w4 w, w
static struct gpio_led da850_evm_tl_leds[] = {' b" j: {" Q. t# V
        {. o' K7 m5 X7 J! ]  S& c, {
                .active_low = 0,8 N' o- A3 F3 Q, z3 A( M. `# J
                .gpio = DA850_USER_LED0,
# U' g, b4 M: Q8 z% Q% F9 I                .name = "user_led0",
( l. U& [- p3 y8 `- \4 e# V                .default_trigger = "default-on",
! r6 F: c& x$ Q        },
, U+ A5 A5 d# h        {
1 ]4 _, |. |  q* {  I1 K9 C# ~. m                .active_low = 0,
0 \9 `7 f! B+ }& B                .gpio = DA850_USER_LED1,
0 Y- X* o: |0 ^% `8 M                .name = "user_led1",# n8 d# a; ^8 S) g# ]
                .default_trigger = "default-on",
% d6 D' d0 y& m- H6 ~+ A, |0 `, {        },0 D/ n% o  P9 O+ S+ x: H8 S
        {
* j/ [; z# D" \& p: O                .active_low = 0,# k. c$ Y- |1 x
                .gpio = DA850_USER_LED2,
* ]! B' d* `$ s) R# o1 r                .name = "user_led2",
. n5 T4 |4 K+ H: X                .default_trigger = "default-on",
) I3 E5 ^! A$ x- s        },
5 a7 L; t/ U1 W2 E3 y        {
: Q4 d% ]( t1 q                .active_low = 0,
9 T9 l" J& ~  O& E0 U2 N: J. }                .gpio = DA850_USER_LED3,. c7 z8 `9 h7 [& b
                .name = "user_led3",
" r, S# B7 Q- s* c% z- f                .default_trigger = "default-on",
& o$ q, |9 h) [! r0 N; i+ j        },
1 q% I+ o4 ^% x: M; e};
+ \( ^- z6 i+ D) Z0 l. t; i& Q4 t( }) X
/ F: W" t% H0 Astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; q, t$ c& z- D5 H: Y3 \" t
        .leds = da850_evm_tl_leds,
! J0 X2 o' }0 t# O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 k/ C) F* H1 g
};
& `. s8 a+ K6 j! O
8 V: R# F9 F- V& G" _static void led_dev_release(struct device *dev)% Q4 ^" w! G. X2 ^8 m. Y
{
/ i0 [) b0 v$ |: T};, v2 p* x  X* E! @, f$ B* }0 s

: s! y5 Y: h3 c$ b' kstatic struct platform_device da850_evm_tl_leds_device = {
! G* K6 L; ~- K* _1 R; B/ f        .name                = "leds-gpio",: V% j) _0 b+ a
        .id                = 1,
4 j0 C, P0 Z, `3 l3 u        .dev = {3 J2 f# u0 }0 Q/ H% p
                .platform_data = &da850_evm_tl_leds_pdata,( n* D5 F( V8 ]+ _" L/ O6 ~
                .release = led_dev_release,
6 ]0 v) T# C5 R" F+ C$ s        }
* h# w. z" e5 H: M. U};
' o5 x( d. w' L' H3 [2 S: h) U9 n' s# Z7 U5 y* E- v$ S+ Z9 _8 b
static int __init led_platform_init(void)
0 T2 R9 L, I3 q9 o6 F& G{
# k: T. d% }4 o: ~" ]4 f7 O4 E        int ret;
( M9 ], E$ d( ?) M- i#if 0
: z$ a- p  A/ F# A8 Q. n' m4 i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% m& X" p% k, X        if (ret)
" h6 i3 v* ~( L" |7 _6 X3 F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ n8 G* q# S- a8 o: K/ r: P
                                "%d\n", ret);* Y+ t6 d/ X, T; _& a' L
#endif
4 p3 Q) d2 D1 F8 c6 b        ret = platform_device_register(&da850_evm_tl_leds_device);) d5 x+ q- Z0 x1 M
        if (ret); P: ?9 Z5 C$ E8 s; y2 y
                pr_warning("Could not register som GPIO expander LEDS");7 x+ C# P  j+ [
        else: H2 ]- @! _  `" B0 Y7 e* y
                printk(KERN_INFO "LED register sucessful!\n");" I, \+ {' R; r4 L5 d

/ g4 c) @6 P' z4 `- L) E* d2 x        return ret;8 F, j  B- r* E$ V$ o, o
}" E5 Y* _8 Q/ _3 t0 \, X- s

  \4 F, H$ R  I- Y  ]' V# P$ ystatic void __exit led_platform_exit(void)8 N1 N' ^9 d: ~
{
( k1 U! t- C8 Y1 ^; }9 P        platform_device_unregister(&da850_evm_tl_leds_device);" z& M& `! s  U) V) v
- ?7 ?& F) d* R0 I, V' Y0 F
        printk(KERN_INFO "LED unregister!\n");  ~# j/ ?4 H% V& Z) [% T  I
}
2 C" ^8 I- L# S8 H" L- D* S# c* A( d% p) v1 |& y* N
module_init(led_platform_init);
3 Y; b& k5 j  Z% Z0 \) P2 tmodule_exit(led_platform_exit);
2 }" _1 Z) _2 h5 E" M9 J
7 i2 t" A( }) n. SMODULE_DESCRIPTION("Led platform driver");  L5 e/ O+ @) x# p
MODULE_AUTHOR("Tronlong");/ u" t  {5 e4 f4 a) J, U, @
MODULE_LICENSE("GPL");$ f1 \9 ?1 t4 Y% @- z- m6 H
, f7 \, m/ q  \! X& ~  Y0 c! b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 18:02 , Processed in 0.038459 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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