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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 K4 X7 c6 ^: G% ?#include <linux/init.h>
5 u9 _$ b/ M3 U7 e1 K+ j7 `#include <linux/module.h>
3 D4 L  ^; y5 T& O1 ~- M8 S7 o3 }#include <linux/kernel.h>( ]  }/ n; X. X; f2 G6 e& r
#include <linux/types.h>
8 M6 B0 k, |& |4 L2 C* O3 ?+ g#include <linux/gpio.h>
& F5 y: z8 d4 S; c% O1 {: R#include <linux/leds.h>
2 O" W; K  X, y0 ?7 x#include <linux/platform_device.h>
/ q/ W; @/ \1 g+ L# e4 O- Y  k8 H# A. M) M7 ~/ U* K
#include <asm/mach-types.h>& j3 B' ~% v* B9 U+ J, w5 P
#include <asm/mach/arch.h>% C7 {# D+ S1 P: a/ Z0 K( Q7 h6 S& b8 _; r
#include <mach/da8xx.h>0 ^7 m, E" H% N3 O7 |4 E- W
#include <mach/mux.h>
$ [: s3 L: }1 h+ y9 N$ m
/ X9 R4 `! X' ]' i. R" Y, D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" Z" i* E, c% a* L
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ g3 a: Y' i" K2 z) L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 \+ V$ x8 s# V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 h7 E7 f2 h8 f7 z
2 I! J/ a: r4 ~8 i0 x& ^/* assign the tl som board LED-GPIOs*/
1 S5 F3 J8 @- F( a1 d$ i% Lstatic const short da850_evm_tl_user_led_pins[] = {9 B  F; Y3 F) d! U; p
        /* These pins are definition at <mach/mux.h> file */
& Y6 M) E( P) g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 I# s4 H! i, v1 e# M
        -1+ W5 v1 L- }' c5 Z: V
};
' c% {" f6 g; t( ?- x, s
7 f/ `( r* Q& W& ]static struct gpio_led da850_evm_tl_leds[] = {- E9 p. b0 n, n: O# ?4 c
        {! G8 q1 y) O9 w7 H" a; @4 q( y, O
                .active_low = 0,+ l6 @* z8 v, |3 c+ J: }& J; q' C
                .gpio = DA850_USER_LED0,& p4 I/ D# ?' e; ?4 s3 J
                .name = "user_led0",
% Q" v" v* Q; F+ G$ x3 Z3 \1 i; G                .default_trigger = "default-on",
1 g# j8 l' x% M( A5 Z        },
  }! _8 t% \7 T. Y        {: _5 G! A: @' d3 Z; o( V: w  O
                .active_low = 0,
- H( E, D1 g2 @2 ?                .gpio = DA850_USER_LED1,* w; p; |4 e/ W( ?# Z  @" t
                .name = "user_led1",, R- d" }% }1 W8 J1 y
                .default_trigger = "default-on",3 V. W) n9 m; |% z
        },
9 K' r8 s, H! s' Z$ k+ N/ ?# q        {
: v( G+ m, H  I& l6 |                .active_low = 0,
  _% u5 \4 C' U9 j# V/ ^                .gpio = DA850_USER_LED2,
0 v& g3 W" }9 v5 p+ P9 Y" f  o8 H5 r                .name = "user_led2",2 T/ Z( \8 H$ `4 N1 Y+ F
                .default_trigger = "default-on",
3 A6 n' g9 Z5 i: ~; o0 G8 X        }," T2 f5 f2 o! m" N+ [0 g
        {" y9 c4 x/ G, F
                .active_low = 0,/ s; o' S6 ~( ^. @# ]
                .gpio = DA850_USER_LED3,
* n; [0 w* t3 _' B  Y4 R                .name = "user_led3",2 P  p1 v- a, m- d. Y% h
                .default_trigger = "default-on",
9 E1 B* |3 G+ c; p4 W6 h        },
; [$ x/ u6 ?+ ~0 w" X, D};
/ d5 L$ i; U& V1 f9 a3 p2 p. E, H; N. @% J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 M: ?2 t4 |: V) U( a; A        .leds = da850_evm_tl_leds,
0 Q! N; j) I1 E( L: z: e) n        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ }* }" t6 V# p, d1 f8 U
};; }: f1 i& [  @4 q; @0 \1 c' E/ _4 x# Z
8 ]) w5 V3 A, u
static void led_dev_release(struct device *dev). W9 v0 g9 N# Z( _
{9 `- d; [( C0 V5 R
};
. y* e/ l& Y" k' v3 C
* `! H# h8 F; ]' ^* \' rstatic struct platform_device da850_evm_tl_leds_device = {
8 y. {: M5 z1 k        .name                = "leds-gpio",4 l/ E0 g3 R5 r8 R1 P
        .id                = 1,' x7 _; H( C" F3 H: g
        .dev = {
( @: C- t! X/ d$ e                .platform_data = &da850_evm_tl_leds_pdata,
6 B) n+ Q/ Q; h1 [  ]# r) E                .release = led_dev_release,
" v3 J1 d* A1 ~0 s  W4 c! c        }
  p4 H4 a* u9 G8 s# w};
2 z# p0 ^/ E  R) R$ ^; o( H( ]/ T6 A1 s- K% n" t$ A: Q( X, K7 v
static int __init led_platform_init(void)$ y/ C2 x9 ^2 {. b9 c
{
  ~1 g# ~8 K1 r/ K8 t/ [4 E        int ret;7 G+ D9 }5 e: x9 I
#if 0
9 y* i9 L; ^' ~. V4 ?! M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- O! E. d0 E5 u3 F7 U; `! G
        if (ret)! |4 C! x, M6 M! i/ i5 Q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 H( [' T5 o+ e$ a0 [, `5 u; t+ W7 |                                "%d\n", ret);
) N& X2 i) A5 Y0 X* h1 c#endif
1 ?/ R/ O6 Z: I, R        ret = platform_device_register(&da850_evm_tl_leds_device);
- Q, ?1 z( z' `8 W4 B        if (ret)) m3 A6 h2 s$ I+ G! b
                pr_warning("Could not register som GPIO expander LEDS");3 N$ z) K2 T% r/ a( m0 @; y
        else4 ~# z! K9 c5 O! l: q
                printk(KERN_INFO "LED register sucessful!\n");3 K' w( ?' k" W9 c2 R
4 @% U# S# c7 h* t9 {
        return ret;
' O9 v2 j6 q2 {0 @8 ~3 H+ M}; R# _' h" K1 {  Z5 l

9 M0 X8 M; ]6 @, _static void __exit led_platform_exit(void)1 N. P+ E# o; r) ?4 Y
{3 ?5 v4 @2 D! O, i# B
        platform_device_unregister(&da850_evm_tl_leds_device);2 B, f1 F9 m9 E1 W+ p7 u
: R/ C; U( z6 u0 O. m
        printk(KERN_INFO "LED unregister!\n");
9 n) Y8 ~" y$ L4 N0 j# H}* r: s1 v0 F& N4 Z

0 ^3 J) U+ j! x5 z& d+ hmodule_init(led_platform_init);
4 x$ Z& ^5 |) y" Omodule_exit(led_platform_exit);3 @/ K. d9 S' G
& \; P1 D3 P3 p% I
MODULE_DESCRIPTION("Led platform driver");
- K! F5 `* D0 A: zMODULE_AUTHOR("Tronlong");
. T3 S: D& l! P4 lMODULE_LICENSE("GPL");
$ y0 h: v* ?8 Z) F7 {. ^, D) O4 s
: ~9 W1 U# i+ i0 V: N  S+ s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 05:44 , Processed in 0.038241 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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