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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" c# b3 d- e3 y& `& B: s9 [#include <linux/init.h>
' R* m5 H; n* \% U9 p* h2 `6 ^#include <linux/module.h>
6 L, Y9 f& F8 `1 l" h! Y% h#include <linux/kernel.h>
. @! y! I: [. I8 w8 Y' {#include <linux/types.h>
* _, ?) ~5 |( |$ t9 H& y#include <linux/gpio.h>2 U9 R, v8 d2 P( j
#include <linux/leds.h>" O6 b9 M* X  g2 k& b
#include <linux/platform_device.h>( C5 ?* P3 I  C3 o+ Y

0 `, A8 p4 N" e% _: M0 ]#include <asm/mach-types.h>/ b  n' O" v8 {, E$ u% }
#include <asm/mach/arch.h>) P* U# D9 i. K, t
#include <mach/da8xx.h>5 q$ w4 X& U# o" L4 l9 a. \8 I
#include <mach/mux.h>
2 [2 v+ x( r$ d7 K" |# _
; G( n; A9 ?  M& \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* E1 X' M  O4 E* K8 h* k! j& w- f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 |# ^+ [; ~# a0 u2 p( a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% A" J! e1 U- @% O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 y6 v0 ~! g- b4 y! f$ f/ z1 _7 z; t& L
/* assign the tl som board LED-GPIOs*/
$ S  p# `: j& v" Y2 S/ B6 M2 ustatic const short da850_evm_tl_user_led_pins[] = {
  V: L- [" @) E2 J        /* These pins are definition at <mach/mux.h> file */8 l5 [# l- Y7 l2 |8 _6 O' i3 T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, G) v. i2 [1 P6 P  X7 o
        -1& T  d! ?4 z" o7 m
};; `, b* w. h! q+ D9 X+ i

; M2 s- R. {; x/ g- vstatic struct gpio_led da850_evm_tl_leds[] = {
3 o7 T7 K9 q% c) h        {
3 v/ d/ ^4 r8 e# a                .active_low = 0,
! a$ B  E4 m8 f& `9 `- l                .gpio = DA850_USER_LED0,. _" g( E2 Q- _5 r0 ^3 Z
                .name = "user_led0",6 F& Q5 u' D/ s7 z+ f8 r3 ?2 \
                .default_trigger = "default-on",- G! B& F" d- s! i0 `( v
        },- a+ L* Q2 C7 M/ h9 p% ~& ~
        {8 q, F* l9 f, H
                .active_low = 0,2 E4 J" S: y4 L
                .gpio = DA850_USER_LED1,
1 s' g* ]! H$ a6 M                .name = "user_led1",& h. `/ R( w! s& V1 e$ y' g" @+ i9 w% t. b  g
                .default_trigger = "default-on",
( B& U( v9 E2 p# a0 j3 }% H        },
: U1 s& y' s% U  Q  i) h1 @        {
+ _( |- Y! H* u& {0 w6 |. ~                .active_low = 0,
  H6 H$ M/ ]; W                .gpio = DA850_USER_LED2,
/ I; C, W6 g4 F8 X" q* F  ]                .name = "user_led2",
& x  D: J) a* |! }9 Y7 c& d: B  q                .default_trigger = "default-on",
" A  [/ ^! _- K1 B        },7 P- b# A0 R3 x( c3 w( s3 O# v
        {$ d; ?4 |5 M+ s2 V
                .active_low = 0,+ m0 F1 I" M6 G- g* G3 u8 C* y
                .gpio = DA850_USER_LED3,, p6 `+ `0 _: K% ?  O/ o1 }% G' v
                .name = "user_led3",
2 I! [2 i' [+ {3 u/ k  h  f6 Y                .default_trigger = "default-on",( w9 y9 n7 I: Z$ a, n/ j
        },
! @+ v$ b' M+ x9 H. G5 R};
7 x$ s0 R- O% D. B& T) g3 J/ b7 K2 t" |( I& t' d$ v+ X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  V) K* G/ q# B  _9 Z        .leds = da850_evm_tl_leds,
  @& l9 l3 a* a) n        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 w# @$ h( y2 O( n: }, s1 t
};* @- N4 L& l0 ^& l& O

! W5 i# Q1 @: D* n$ zstatic void led_dev_release(struct device *dev)
7 @0 M3 G# L1 w* \& g/ ?{
0 F6 Z* K) ^- k7 t6 m8 C* `! m% p! l};7 p8 e. W: v! i- @
% I2 P! k+ o' M' _. _' u" x
static struct platform_device da850_evm_tl_leds_device = {. A1 S5 @, `+ ~0 s
        .name                = "leds-gpio",+ B( s' [1 A/ l$ e: A* H2 L- R
        .id                = 1,1 a) p$ o. o0 _+ }% U) C
        .dev = {6 q! B5 }; U, F6 n0 c$ }
                .platform_data = &da850_evm_tl_leds_pdata,  Q& R6 Q) @7 `* N
                .release = led_dev_release,; n7 _: W# Q9 _. q9 Z) Q
        }
+ O+ g& k7 A4 J9 x4 _# W$ i};8 @/ V# d2 a" \3 s$ j
% [3 D/ r$ P  S
static int __init led_platform_init(void)
3 i; ^+ N  J1 K9 E" _4 ?{
0 y# B7 |4 `, E. W; F0 I+ }        int ret;
2 e$ A8 M* |4 ]0 p# c#if 0$ Y# W: `* O0 b4 r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 u1 Y; U& B' M& I4 H  t& s
        if (ret)
' l9 v+ N& [; S3 a  t3 J! [& b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; k# C* {0 K4 `3 o( f, M% N
                                "%d\n", ret);
" o0 v4 z& u$ E4 r4 i1 [5 r6 }( ]- V1 q( Y#endif. y( h6 B- g1 X, Y
        ret = platform_device_register(&da850_evm_tl_leds_device);, `+ Z- K4 k( N1 p/ J
        if (ret)
, G: `! M* F& p6 G; q                pr_warning("Could not register som GPIO expander LEDS");
. g" G5 ~; S- r( A: H, w( |* l        else
5 i: A3 R& y; R2 H; C  f/ l9 y% D                printk(KERN_INFO "LED register sucessful!\n");
( `8 j( x, C8 N, t1 `9 @; z: m' W9 x7 ~: p4 y. r
        return ret;( j0 _$ G" O$ O! y, J1 |
}3 m/ y6 T4 X7 C, h8 ^
+ }" Y% B7 q+ F
static void __exit led_platform_exit(void)
! I; ~* P" X" t7 E% c{) m% Z  I$ j+ O7 f' q3 @: `& ]& r5 v
        platform_device_unregister(&da850_evm_tl_leds_device);, K/ q6 X' e3 I- a( z+ h+ _) Z
( Y: e7 e$ u& x! W  A
        printk(KERN_INFO "LED unregister!\n");/ y" [% S- o; f1 m
}1 @9 W8 }5 G* u+ i9 ^
8 I( r+ J: F8 J: V6 N5 h
module_init(led_platform_init);! e( C5 ?0 Y0 d  W
module_exit(led_platform_exit);6 {# p" {2 [  P
" F* @: a1 v9 C  w
MODULE_DESCRIPTION("Led platform driver");
$ W1 e$ n* }2 u7 KMODULE_AUTHOR("Tronlong");
3 U: m$ }8 Y8 y1 d; J  B% RMODULE_LICENSE("GPL");. m, H8 Y) M1 \* N! Q
% g2 I& P$ Z. Y7 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 20:14 , Processed in 0.045223 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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