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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' T6 [0 G* ^" x) d- t+ j- r/ Y#include <linux/init.h>
) y" \, a3 k) {2 J$ S: T#include <linux/module.h>
* i% C0 D4 b9 A#include <linux/kernel.h>+ [2 U* h9 [3 M; r- K4 q
#include <linux/types.h>$ {% X* \2 y) H4 M
#include <linux/gpio.h>
" u. f( m6 s2 X5 C#include <linux/leds.h>
) n9 y( G9 k8 v2 x% K#include <linux/platform_device.h>
" e) K9 q1 z5 K: P0 w) f7 }$ n+ G/ Q6 m; o& r' s) I( _8 i8 r
#include <asm/mach-types.h>
2 O1 T+ A  p! T#include <asm/mach/arch.h>! I% g. M& S  C( P
#include <mach/da8xx.h>
4 A3 w9 ]6 a: O% p#include <mach/mux.h>+ X0 [, V! i# L5 P. n
6 z, t, U8 W" b: M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* Q5 B. |4 v4 t#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: [# D5 e, V  _$ X1 |0 R9 m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# ^% r, i& i  {7 f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), L2 Y. ~- Q4 H: b: v9 p) V9 A

( P9 Y' o* N* d# a& _/* assign the tl som board LED-GPIOs*/
; D# v" w& T8 nstatic const short da850_evm_tl_user_led_pins[] = {. u- z8 f& w2 L$ B$ K
        /* These pins are definition at <mach/mux.h> file */8 R0 N5 P; l0 M$ A% W% o- X% B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( [: ?% E9 F5 [' ]8 c        -1; \+ G2 M3 D( _3 o  @2 w# _& o
};7 Z" i; D. H" Y

. H: }* L- d+ k* g: m3 i- x; Astatic struct gpio_led da850_evm_tl_leds[] = {
+ j: `' C4 K# y% Z; q# `5 ^        {
$ ?( J* k/ V4 E2 u" T) M                .active_low = 0,7 m4 E5 e# W# {, i3 n6 E; }: ]
                .gpio = DA850_USER_LED0,
+ h( j- @  R& p3 R3 F3 c: B                .name = "user_led0",$ X+ |' R, C( m4 i5 I
                .default_trigger = "default-on",6 U: \2 n' d6 B, ^9 ]/ p0 T. K
        },
% b; X3 @& F' z        {
) c: E% J: \: c; r" k" b                .active_low = 0,
6 o4 d! U3 K* S) \                .gpio = DA850_USER_LED1,
- p5 f# t. r' w' i                .name = "user_led1",
3 K3 V# Y5 n8 t8 @% H  k' _                .default_trigger = "default-on",
: q, {% `5 M7 U( k( c: z2 S. K/ s        },6 {4 W1 O9 |3 P/ ]! X4 W
        {
, X2 Y( y" m; ~                .active_low = 0,
9 _4 j% u. h$ o                .gpio = DA850_USER_LED2,
- ]0 {( d, _3 x7 h+ E9 o8 K                .name = "user_led2",$ O. q, _/ r. a* j2 v% `5 |
                .default_trigger = "default-on",
5 P4 T. g/ b  K7 q        },
% n, ~' {: c  s        {* O! b0 ]' R1 Z; C4 h- ~
                .active_low = 0,
3 \+ y& [7 S0 E* o; T7 R0 M) B                .gpio = DA850_USER_LED3,
9 N* i5 P2 L6 A1 w( H' u  m                .name = "user_led3",* S8 V) \, E6 J% m0 [. {
                .default_trigger = "default-on",
$ k$ M0 Z  B% U; R) U2 s7 N        },
; F% z/ Y" O: d! P8 \" t: Z2 I};; G; g" B! R) v8 q  L3 k: r$ C
% \4 e4 _' [( K8 k' H7 w, c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  C% x; Y6 O; d: [) ?; n        .leds = da850_evm_tl_leds,6 N% _+ N9 `7 o4 ?# L% Y' S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  P% x, R' ?* f' N& N) S: H
};6 P7 Y1 L: O' k# i

4 v% @+ G$ P4 [. ]$ Bstatic void led_dev_release(struct device *dev), C* c+ \$ ?# u' O1 }3 m& @- O
{
3 V2 i' r8 I, @' p( w1 T! r};
9 P9 t( s0 h* Q/ b: ]/ R2 y
9 U1 t  g! V! \* y+ _1 Ystatic struct platform_device da850_evm_tl_leds_device = {0 U& C4 i9 }# j  z4 _- k7 L
        .name                = "leds-gpio",
! h4 M/ Y0 _: j- V        .id                = 1,
1 A' g' }  @7 Y        .dev = {
, N+ @. P" W7 ~* x' i0 q+ A                .platform_data = &da850_evm_tl_leds_pdata,* I+ v" {# V; K: Z# d. D8 ^) ]
                .release = led_dev_release,1 D7 n8 }- A0 ~& i) K" ]
        }& _9 R# b9 O4 z; s- m7 o
};. b" K- Q! J# K3 ]- M, v" i8 r3 u

* v" U7 h& o7 Kstatic int __init led_platform_init(void)
9 \( C/ d  X8 Y: I# l1 N{# m; B; f- F) J3 H  |
        int ret;
- u( t6 E6 f6 x: S; v#if 03 j. W* C8 `( [0 v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' a# \3 y4 m2 J# H
        if (ret)6 b+ C" O# L6 L  o0 t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& F* M# \4 h1 J1 @. E* b                                "%d\n", ret);: D9 u* t: b0 _, c$ i) L0 u
#endif
/ q/ a, i! U$ ^2 g) e' R+ ^. ]        ret = platform_device_register(&da850_evm_tl_leds_device);- z# r7 g$ X! m, a2 D* v" a
        if (ret)( W2 y' r( l- \
                pr_warning("Could not register som GPIO expander LEDS");
4 z. z; x) E0 f5 z/ a2 I- o( H8 e8 s        else
& B; T; D  E$ i                printk(KERN_INFO "LED register sucessful!\n");( O" ]5 I+ l! @- \; ^0 B4 ~

: w5 x* b: a' |% I/ d! }        return ret;
$ I1 f" H! n7 D$ B}6 ]2 J# |2 r" c7 R

2 {7 b0 Y8 D- hstatic void __exit led_platform_exit(void)7 G1 ~# m+ {) p$ u  V6 S2 g. Y
{$ E- w. e4 _5 [
        platform_device_unregister(&da850_evm_tl_leds_device);
( Z+ a  i3 i5 ~6 e$ z3 a
2 _1 v4 N( N1 B9 h( ~        printk(KERN_INFO "LED unregister!\n");5 I4 Q0 r) G  Z+ ~  A: K! m0 ^
}" a4 {5 @2 f3 n$ [, X, @) `5 T5 K; `
+ o9 Y. @  w' _7 m% z
module_init(led_platform_init);5 E2 K6 b1 C( S7 c; E$ I9 C
module_exit(led_platform_exit);
% W  g3 ]) _: X  }, P$ J; X, F( e$ f1 J0 @  J) ?5 d# b
MODULE_DESCRIPTION("Led platform driver");
: ?8 ]) P& j. t1 I4 g: zMODULE_AUTHOR("Tronlong");
! g! _% [/ h5 vMODULE_LICENSE("GPL");
: Q2 ^4 c2 `' L# m  P& a
& N; f% @1 ^$ k- d- h$ c; z! z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-23 09:59 , Processed in 0.035903 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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