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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* g% }' w5 u- f" i0 c#include <linux/init.h>% X2 T! {2 k, p( U
#include <linux/module.h>" |- ~* V- K3 \6 P4 d- [& e" H" A. w
#include <linux/kernel.h>4 _7 X* L# Y# [1 x- z5 k) a
#include <linux/types.h>
' P1 r, F9 F3 C- m#include <linux/gpio.h>
" F, f  A* X9 }3 @8 G. Q4 t5 C#include <linux/leds.h>
. A& {# S# M5 ~3 c5 @  C5 P#include <linux/platform_device.h>
" U, V" y! o7 @8 M* h" o. B% N% r3 h5 L, ~
#include <asm/mach-types.h>, p/ V3 ^/ L. U3 R. X
#include <asm/mach/arch.h>! ^" M- b, C. y
#include <mach/da8xx.h>
5 d. E; K$ P- q5 l* @, b% f: M6 t#include <mach/mux.h>0 Q: A0 z; n% d3 o( X( S

, T5 N2 G- W- K4 Q1 L#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' \# s0 T5 P% y+ g2 n" B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. t, q2 P- r, V2 Q' E3 i- c3 ]% ]#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 i3 x: t' q0 ]& k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' w9 I* ]  _5 k% h1 I  |4 r
' }  x2 c2 u7 C  k8 C  w/* assign the tl som board LED-GPIOs*/( o: M  \/ _6 G5 N/ Z
static const short da850_evm_tl_user_led_pins[] = {
: x" S5 V: y' {        /* These pins are definition at <mach/mux.h> file */% T) Q: w9 B4 d3 W9 L0 T9 S9 }* S$ x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! v9 R# ]- W' y, ?! S/ _0 P        -1( L/ Z; s4 r9 }& K, M' x
};
* T, K+ {) T! \% g" K' |* Z. `& f5 w1 y) H/ D  _
static struct gpio_led da850_evm_tl_leds[] = {
( W5 U8 n9 q- m" }# }9 L7 p        {$ F; V% y' t; v
                .active_low = 0,
0 D. i, C; P0 I$ b5 h+ ^8 l                .gpio = DA850_USER_LED0,
0 L8 _2 k1 C' v3 Q% R, K/ ]                .name = "user_led0",
1 K/ B: t7 _  z2 u) X                .default_trigger = "default-on",
! x  u  r) ~, A, z8 P0 k2 B# U' Z        }," M0 \; T* Q$ R6 {- u5 l
        {! E$ q; C- T. _; H: {$ l
                .active_low = 0,* S0 S3 L/ b' G2 g
                .gpio = DA850_USER_LED1,5 l; O! L3 n3 D6 x
                .name = "user_led1",3 L6 B! N- Y3 x9 E1 X
                .default_trigger = "default-on",
2 m6 i. u" G9 S4 `! H5 V        },
& Q" W( L4 N% w8 [        {: z3 H, n: {  F' W
                .active_low = 0,7 L) D+ T1 M3 U+ H8 [  i2 _3 ^
                .gpio = DA850_USER_LED2,: K$ X, K- Z5 A( [- r
                .name = "user_led2",
; b$ @, p! H* y2 J. W8 z. J                .default_trigger = "default-on",
) S3 t$ [7 b9 q        },
. u. G4 @+ z" a9 f' C        {
; J& @4 }9 I1 j( L2 j! [' ?6 x( T                .active_low = 0,
8 Z5 ?  v% T$ P" E( w9 X                .gpio = DA850_USER_LED3,
3 F3 X) H( J% n, [                .name = "user_led3",
" R  v6 `5 {5 E) w* g+ I; s; G                .default_trigger = "default-on",6 M6 u  A2 R% K! ~, H' ^
        },$ i# U8 n* O2 {6 s' }
};( y9 k: t: S7 V' u7 e; ]! m% y
, }9 b7 j2 u2 n6 o- ~
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ f, |: O1 I& ~% e! E7 @
        .leds = da850_evm_tl_leds,
% W/ x6 d5 r$ \1 }+ y: H0 `* y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) g. u. X1 ?+ v  d) G};- _. r9 u/ U8 ]3 `! |4 v

9 p7 B/ `% }7 x- ?static void led_dev_release(struct device *dev)
+ }) I) I' d) f4 J{
: I& v+ Y6 ^* Z5 O" I9 p- L};
8 t4 c# p3 q# L& T, n* U- q8 K8 C  I! h( H! l7 }( m
static struct platform_device da850_evm_tl_leds_device = {
/ o7 T$ b( E  e1 S) [) J        .name                = "leds-gpio",
: B4 s4 y6 ]! Z# w        .id                = 1,
/ L2 p# C0 w8 P" ^" |        .dev = {
! w( B, |: r" n) f) T! H' S                .platform_data = &da850_evm_tl_leds_pdata,
; G# B# @1 v  g4 U, [                .release = led_dev_release,9 ^. G- z5 A$ Y/ L" ^8 c, k8 i9 j
        }
6 @$ `8 |" H! E8 B/ n};
, B$ t1 q" y: t/ t6 n  Y5 K
, U- w$ R5 t7 l9 q; fstatic int __init led_platform_init(void)4 q* ]- D' x2 g
{
# H9 m7 {( A. Z& k; l7 x' P        int ret;
6 O: L; S/ T7 f4 Y8 N- R* {5 V: x#if 0+ r% |  K. L7 w. p0 ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- {1 i/ `& y! e        if (ret)) g+ P* f3 G! W/ U7 z% D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ O  b; b- J" \( }                                "%d\n", ret);
1 u4 B$ _8 Y9 c, p1 U& G/ x  M9 q/ I#endif
1 o! O5 h% \4 _4 H4 u        ret = platform_device_register(&da850_evm_tl_leds_device);
- }7 T0 R& z) X% A; B' Z        if (ret)
% K* I  t! b) j% M4 {                pr_warning("Could not register som GPIO expander LEDS");
% o" Q1 c: [8 q* s, l. d2 x        else
1 _5 r6 p* |1 F                printk(KERN_INFO "LED register sucessful!\n");
% p5 _) I* @+ t/ o. p% b8 f+ I0 V, T+ c9 h/ `" K6 K+ @# E
        return ret;
  l8 S/ D! N4 @1 X+ ~}
1 p/ n$ Z- T4 ^; c$ U
- j# g) I6 Z" P4 L  O5 y* zstatic void __exit led_platform_exit(void)
3 r- g& ]% x6 ^! }{7 ]5 K/ R# o4 J! g
        platform_device_unregister(&da850_evm_tl_leds_device);
# L& x3 X; K) s1 [$ p- A$ N3 N* F
        printk(KERN_INFO "LED unregister!\n");
$ \) z) S6 |2 Y# j, k}* _, a1 p& Q. a' q

% J" S" C2 k. [( Fmodule_init(led_platform_init);
1 q6 E! D4 y! A: A, p+ Qmodule_exit(led_platform_exit);7 i+ }# G6 b2 m3 k7 y$ i

: S4 w6 Z+ p- iMODULE_DESCRIPTION("Led platform driver");+ t  h; D. ~9 z+ {! `
MODULE_AUTHOR("Tronlong");
9 `$ A. a3 b  G( c8 }MODULE_LICENSE("GPL");; Q: s& H; P$ v( i5 H

4 [# H. ?7 C9 c3 [0 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-17 13:08 , Processed in 0.044451 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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