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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- p9 [5 g0 c  U+ u3 b8 q5 C; {8 n/ l
#include <linux/init.h>1 @& P, e! b4 c7 l  u6 ?
#include <linux/module.h>
, A' q6 |. |( W6 Q; T4 j5 ~#include <linux/kernel.h>+ r( m$ W1 e: e
#include <linux/types.h>6 a5 |3 Y+ g# y2 P( ?0 }4 n
#include <linux/gpio.h>
) c8 @, T% j/ ~#include <linux/leds.h>
1 |4 |: Y: ], |9 d' a#include <linux/platform_device.h>  S. N& l+ P8 {9 ]0 K
, b5 n5 h# [$ Z
#include <asm/mach-types.h>
; C, k' R1 W$ U8 V#include <asm/mach/arch.h>4 t! j% h0 m. U7 C7 T' f
#include <mach/da8xx.h>
$ w+ J) Z+ Z& M  F1 F9 Q#include <mach/mux.h>' P/ k( p3 g" i  Y- F) T% q6 o( C

4 o* U4 {, S' ~5 n- Y2 D+ R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ g2 t! Q. y5 I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 c2 C) F- G9 k4 U; C0 `! v- [4 O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 ~* X1 V& P. n7 P" H& ]; L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 g$ k5 X, X; e- n9 C% \

" B, [* F4 \' e. R/ _7 I! s/* assign the tl som board LED-GPIOs*/
& L) b, o2 X$ ?5 l/ _static const short da850_evm_tl_user_led_pins[] = {" l# b+ l( Z0 G( m5 A
        /* These pins are definition at <mach/mux.h> file */3 l5 |9 t; Y# _7 ]
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," m$ S6 Y: s3 I" s+ T% e' y: N% `
        -1$ v# G- h3 G- G! q! b( F: `
};: s& G$ w/ n7 \# h( X! \. V6 W) H

$ f+ B# x6 e9 ]; {) D/ istatic struct gpio_led da850_evm_tl_leds[] = {
/ R3 Y5 h3 n  Y+ O$ Y2 E: [) w        {
$ w; y9 @. f/ C: E, \% n2 A  q, \                .active_low = 0,
/ n  G, f9 N& g4 B! ]5 C- k4 [                .gpio = DA850_USER_LED0,1 M) G9 A/ Y% r! X. X
                .name = "user_led0",
5 G& [, C) \/ h7 Y                .default_trigger = "default-on",5 ]" o; B, e4 C& N1 x/ d
        },& n+ A6 d; v. p, A
        {; C1 U" S5 v+ P8 i' l/ F8 r
                .active_low = 0,
; ?) ^# H2 r  z                .gpio = DA850_USER_LED1,
8 p% ^) |5 i6 s7 S; {                .name = "user_led1",
6 U. q! g# Q. N8 g                .default_trigger = "default-on",
) F) Y/ @5 E: Z* g' Z4 _8 Y        },! n; r$ U1 S( N! G9 T6 _
        {: G: v' ^0 V! `0 h" U! H- ?7 |
                .active_low = 0,; k- v3 k: i3 {
                .gpio = DA850_USER_LED2,
, U# D- k/ X* T                .name = "user_led2",
# Q8 g: _, n( Z% I% g. `                .default_trigger = "default-on",
! \! \2 |* V- }/ }& a% g+ M. X7 r        },
- s0 i: d  Q5 m0 {/ x. @7 i        {+ S  K  @3 b1 g* T5 Y; B
                .active_low = 0,5 @/ k9 z% d3 q/ X8 n
                .gpio = DA850_USER_LED3,
5 M3 T* o# A8 n* K1 y! J, l                .name = "user_led3",
4 T+ j' B6 Y7 Y                .default_trigger = "default-on",2 E$ f( \: A) \9 j* a
        },
' e9 q; {% t8 P, ^9 E};
: K  |2 e: T8 [8 F# q( G3 g+ E7 s
( M) i# K. r6 f5 A1 z) m6 Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( d; [7 \# ]/ ]: C8 W        .leds = da850_evm_tl_leds,
0 ]2 u/ W. d  y" r, e& j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 D* `2 [2 W2 b! x1 U% Z};. @. W1 U! }0 W5 M  k

* c- {" s$ n: @static void led_dev_release(struct device *dev)9 z4 ~4 \6 H& {& L6 o, j3 a
{
9 K7 G5 I# V" c: S. D. b};
3 F0 Z2 l* h7 u* w
+ v5 `; [- T) w' wstatic struct platform_device da850_evm_tl_leds_device = {) b" x# o1 g! L8 c
        .name                = "leds-gpio",. j# ~( r, Q, I0 c
        .id                = 1,
- v' I3 M) s) G8 ~# V' a        .dev = {7 P4 s2 F9 A4 a- t- N0 L8 \" i& g
                .platform_data = &da850_evm_tl_leds_pdata,
  ]- ]+ u& a+ R, T                .release = led_dev_release,! S# Q9 K7 `/ z9 k2 h/ a* a5 y2 l) U
        }
! [" t6 L, m0 g" x' U5 P};
# J  S/ K) u8 T! B3 _( j+ Q* U- h7 j
, P2 ?& k$ j) r$ b% Pstatic int __init led_platform_init(void)
0 P! h5 n' j6 P, N- u{5 q! r; ~: R  l; N. s- e
        int ret;
; Q+ A' N! E$ ?2 j$ R9 e#if 0* J8 N5 U6 l0 ^4 Q, T6 b
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; p. S4 e8 v3 Z$ z1 h        if (ret)
+ R0 G' R4 H& V" O( v8 e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' d+ q5 U+ n6 G7 `5 O$ ^                                "%d\n", ret);
1 D1 @* O+ }8 M% p/ g* i#endif
) k/ G% y; O" K& L2 C' [, x        ret = platform_device_register(&da850_evm_tl_leds_device);4 m$ K' p! J% Y& p/ O
        if (ret)/ n3 u! j# }. Y% ^  L5 W# J
                pr_warning("Could not register som GPIO expander LEDS");
2 t) x, D5 Y4 E( g" Q9 X        else
6 r# u/ i, [7 n, d                printk(KERN_INFO "LED register sucessful!\n");0 j7 r5 D' j1 U. u8 w

$ q- Y' I4 J/ C6 \        return ret;& {1 X7 [. U: R3 G, l( g
}
5 U# V& x, a! d0 l* M, |: r# I* H2 @- w- R5 W7 d4 A
static void __exit led_platform_exit(void)
  p, ~; _$ G1 d{& R7 \0 Y# x! L+ A4 M8 j
        platform_device_unregister(&da850_evm_tl_leds_device);
' r1 F8 v% i+ C; \) I
7 L, ]1 S" e+ a        printk(KERN_INFO "LED unregister!\n");9 N, o2 o7 o$ F  T0 E$ q+ i
}; F7 [0 ~" S3 u( {5 s+ g

. z: l+ Y, c4 N$ }# {9 g3 |module_init(led_platform_init);4 T5 e5 ]9 P# A
module_exit(led_platform_exit);
3 D+ R- r' Q5 k" d# c$ @1 }6 v+ l, `0 F, U5 Z/ f3 i
MODULE_DESCRIPTION("Led platform driver");$ `. |  {4 B7 ]0 a0 M+ \7 l
MODULE_AUTHOR("Tronlong");
5 y; X5 c' d* s) r, H8 TMODULE_LICENSE("GPL");
; n( I/ \* N. V. l9 O' g$ Q! p( }, L2 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 00:00 , Processed in 0.036763 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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