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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 x% Z, A# N% Z: n#include <linux/init.h>% P0 G' v4 u+ S' j& b( V% A: p! c# b
#include <linux/module.h>8 H6 N0 ~' |: N" Q; B1 t  F) n' `
#include <linux/kernel.h>
/ f! y; `' J3 ~, T5 x" r9 U#include <linux/types.h>
  h( g" P' Y1 e- L: E#include <linux/gpio.h>
. F6 e, K% Z" u! F! B0 `#include <linux/leds.h>
4 V" K) O" Z# I% w" U; R0 I#include <linux/platform_device.h>
6 |/ I3 B+ @' w6 o8 W& o" K
3 c# b7 {0 s8 ]3 |2 \#include <asm/mach-types.h>) P# P) Z3 m# @. ~& i7 l- r; q
#include <asm/mach/arch.h>1 t1 ^  ]! T! V8 v5 e
#include <mach/da8xx.h>: f1 Y' _4 Y% W3 S
#include <mach/mux.h>
3 V8 c7 T& U* }1 F8 o& h1 G9 k
# F6 s9 Y- |' T  T& j/ @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' P# W: T) F4 v4 l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 {3 [* t5 L  k% b3 A* C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 ^. h# L$ m9 `, V  {) v  [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- k0 M8 p: T) C
2 i4 {* Q4 p: t3 }" ]7 C7 w
/* assign the tl som board LED-GPIOs*/
5 o. u) n- [1 a2 C2 cstatic const short da850_evm_tl_user_led_pins[] = {3 H, V. P' Z' R2 x" F0 U- w
        /* These pins are definition at <mach/mux.h> file */
, X/ X" u' e& X/ _9 i, V0 y# O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. a- a+ \4 p1 _2 p2 M4 P- M2 Z        -1
" u! x$ P; \: W4 ]$ I: O' d};' i8 E5 P& S- }

( P5 V) ^+ _1 ?( M) `1 @8 d5 ystatic struct gpio_led da850_evm_tl_leds[] = {
& u& S) y6 F) j! \7 T& z/ W        {
/ z( p. Q/ \7 N) O% s/ _                .active_low = 0,0 u. @5 z0 n8 ^+ G& \- M
                .gpio = DA850_USER_LED0,7 s% @  V5 s) w0 F0 Z  L
                .name = "user_led0",! `% M' L. Y2 d
                .default_trigger = "default-on",
4 [5 l6 x  d* C2 }, f# }+ F8 {( [, O& d        },( D8 Z4 n- E- F; F1 [. e
        {' \/ e0 b- T/ B- X* l
                .active_low = 0,8 K* s: K, ~( s
                .gpio = DA850_USER_LED1,7 y& j; g& d2 E* H2 C; Y7 F
                .name = "user_led1",
3 P) q" w' m; x1 I* e$ u3 e                .default_trigger = "default-on",4 [5 D- V! i' z. A  I5 \  }, h* f
        },+ f# ]0 Q1 a" L( y9 q. ?
        {0 r# R4 H7 H* c
                .active_low = 0,1 M* c  U# r% x9 }+ D4 [
                .gpio = DA850_USER_LED2,  n( Y0 L  ~# a. e8 F
                .name = "user_led2",  I, J* I6 M1 _. l* n" m
                .default_trigger = "default-on",3 p% k$ c( H; v$ J+ P0 ^( A. u
        },) _% Z. |( c8 L8 ?+ K
        {9 ~9 o; a- Y6 ]
                .active_low = 0,
6 G( B3 _: K  R& b                .gpio = DA850_USER_LED3,
% `, [0 b# }( G# A( M9 r& z                .name = "user_led3",: S+ V/ @% n6 \- W9 }
                .default_trigger = "default-on",
/ e+ S1 O4 h) P3 y+ w7 ]3 @        },9 s, I& o6 M4 W8 Z/ v
};' t$ X3 L* t3 f2 M& R7 R. b" O
4 \  w8 G1 a4 m& C; [; A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 v. f$ _4 u' i        .leds = da850_evm_tl_leds,+ O( m, T( R) F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 T7 L" J9 X6 w& ?: p
};
1 s  T5 x0 U- c9 ?
' v# B7 _1 k  Astatic void led_dev_release(struct device *dev)9 _/ ]. v0 T0 I$ ^
{( I4 n; U' o  T# e! u% Q
};/ \% {% s4 E7 V6 U! h$ z9 ]6 m# |
8 R( o* h" m% o
static struct platform_device da850_evm_tl_leds_device = {
9 e( p( x% `# v# G. A4 c$ E2 F# Z        .name                = "leds-gpio",
' ~. p  h* Z) q- h: o; ]' O        .id                = 1,
& s1 k2 w  ]* e        .dev = {
8 k5 S/ \$ @  X. a( H) r* k                .platform_data = &da850_evm_tl_leds_pdata,
3 b" j* A+ q' Z                .release = led_dev_release,
. `5 D& g0 r- G  z; V% _, y        }
# w# F( w0 P$ ?9 K2 x% g};$ w3 D9 o5 {# R) b

& x2 W" R* V' m! istatic int __init led_platform_init(void). L8 w# c8 \1 c6 b' E% y# d5 Y
{$ @4 V; [6 _/ V6 W2 m" @1 X
        int ret;9 m" e" b$ _! l
#if 0- D6 K1 F# a% K. w1 [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! _& B3 a! X* n( F! f$ Y4 G% X+ a        if (ret)
" _( Z4 x* I" Z2 I0 q% h* r' ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ V4 ~. {4 ~3 M4 \                                "%d\n", ret);3 U2 A! s: K( @- C0 m
#endif, r8 S, k& E& p$ S& q* S' j
        ret = platform_device_register(&da850_evm_tl_leds_device);: V3 ?! i- ]+ S& `3 `$ Z' `; f
        if (ret)
) d$ R# l/ `/ n3 U5 u, |                pr_warning("Could not register som GPIO expander LEDS");- H. K( i6 u1 v9 y& {  N7 f
        else
# r+ R$ M/ M9 I6 P8 G! F                printk(KERN_INFO "LED register sucessful!\n");
, H) n+ \3 U, T* h) T( Y4 K
; ]$ v! n7 e, C        return ret;- T' H8 Y+ J( C& R) d/ ]. w
}
4 V0 _6 ^' X! s- w$ R: o: W! v' H5 A. ?; A& Q$ O) a
static void __exit led_platform_exit(void)8 s5 p! h/ K3 a% o& `/ v
{; O/ n( `4 P+ q0 P
        platform_device_unregister(&da850_evm_tl_leds_device);
% ~3 ?, K. l+ L7 R
& v- ^0 n2 q- T' U6 x9 R        printk(KERN_INFO "LED unregister!\n");# n4 Y4 n6 D2 ~/ E' X9 j5 h
}
4 W+ ]0 L  _" J2 z" k6 T0 U7 L8 m. \! {8 d- [* w/ J( T2 W
module_init(led_platform_init);
. ]3 W4 C; A5 K- q- A: N  f8 \module_exit(led_platform_exit);
/ |) e9 G2 c" \  z  l9 d
2 Y" p6 x5 O. H2 M! u1 [# Z7 @7 ]& u4 DMODULE_DESCRIPTION("Led platform driver");
3 D" X; o0 o+ n! [MODULE_AUTHOR("Tronlong");
; T% j* C# H9 S* H2 jMODULE_LICENSE("GPL");
4 ~/ \; T; B4 ?& O& U2 p
0 |# C% p3 n- y& @9 M2 `2 E0 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 12:34 , Processed in 0.039670 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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