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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 f+ q( i! _, G" j2 g#include <linux/init.h>* U" _7 [! ~) k
#include <linux/module.h>/ n! s7 x, d& v+ d0 j1 O4 N
#include <linux/kernel.h>
$ Z" @/ J& H6 c# b4 V+ e#include <linux/types.h>
$ v! l( w8 Q! S6 V2 u#include <linux/gpio.h>
( B9 G/ {+ j' ]. Z. P#include <linux/leds.h>1 ]9 ~2 s: o  ?7 B9 c
#include <linux/platform_device.h>. {, y& i0 F: p& A* `% u% x
8 ~) U/ v8 P: G
#include <asm/mach-types.h>
  S3 N  ~1 S4 S#include <asm/mach/arch.h>) e( U0 ^5 {2 y8 \! h
#include <mach/da8xx.h>- f! [3 q+ ?$ y4 x
#include <mach/mux.h>/ u; h( \# u! F5 b5 l- r" g
! z, }  t; I& `& B; J) p/ L9 ^5 H( Z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 i& |' }6 T' \, o9 z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. ^9 r: k* u3 D& \: L- l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- r1 u0 ^* P) ?0 t3 }5 T% M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( E& \- |+ q9 h1 A! D
4 Q& R. X  `. M: g! }/* assign the tl som board LED-GPIOs*/
. r5 |+ C, r2 s( t& ostatic const short da850_evm_tl_user_led_pins[] = {
3 D, F" T" T- X! a; z1 ~9 [        /* These pins are definition at <mach/mux.h> file */% c1 c: k, P" a. J) Z8 [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' k' q/ {1 c2 N
        -1
/ I2 T7 [  l% N6 Q2 T0 I};
% Y$ Q$ X* k) ^/ T& u5 V$ z  \" S# N+ R" f
static struct gpio_led da850_evm_tl_leds[] = {
4 n" M; u; m% p7 g* }8 T9 n        {+ W2 i' V5 |5 w7 s) O$ k" ]' s
                .active_low = 0,
6 m. N. Y7 U: i9 g# [                .gpio = DA850_USER_LED0,) D9 k" a" I$ n
                .name = "user_led0",
* f6 n8 G' g. J! k. ~                .default_trigger = "default-on",
% A2 h8 ^# E! f6 C% k$ e        },& d! S7 n( C" t$ p; p
        {
1 k+ ]8 \; g% S$ I' ]9 W4 x( K1 [0 A8 k                .active_low = 0,, j8 }7 l' B4 l1 D( B( k
                .gpio = DA850_USER_LED1,* V0 ?4 c$ m1 R, ?: ]
                .name = "user_led1",
' `0 q* [8 X  J) P/ e0 |7 F2 R                .default_trigger = "default-on",0 Q3 q9 `7 F- Y  a6 u/ Y* y
        },* I8 D. Y7 N( D. |& ]+ T: D
        {
& k7 V' O5 |7 p                .active_low = 0,  U! x' D/ o6 m3 p
                .gpio = DA850_USER_LED2,
" ^8 [* y, r! R1 k9 M; Z                .name = "user_led2",; L' j* l: C8 Y' g4 d- e
                .default_trigger = "default-on",
% d5 E* @( {( ~        },
3 S2 \, h4 d3 S! R" |4 G        {& {# F  v8 s/ z; T* p" y4 O3 d) N
                .active_low = 0,8 F% |# ~  K4 @7 @6 C6 T! w- L& d1 a
                .gpio = DA850_USER_LED3,7 e  w/ V1 R5 |+ _) |3 p" g
                .name = "user_led3",
4 T6 D' U. O. z8 o1 g3 G/ c; c                .default_trigger = "default-on",
8 D- q6 L$ A+ ~! r0 e        },$ Y  @1 v+ Q0 [! C
};3 c/ F6 O' w8 `* w- b3 G3 W3 ?

' e4 Q+ S- u. C& S0 R& k( Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 u8 l2 e5 |# V8 C3 e4 P/ `. k
        .leds = da850_evm_tl_leds,
: e6 z6 R* F2 X1 J0 Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 j, f$ Y( D' a! C$ C1 I};
/ V6 I' c) o" l" l2 s
  Z2 l" j% ?$ M% N3 tstatic void led_dev_release(struct device *dev)
  a  Q( T* W, z2 ^3 k{6 T# u( I  t) h9 `1 P! L/ ^
};
- N$ Q' ]# B. }- E8 p! R2 t% K& j
; ]0 `8 y' U( c# q  F% j. Y6 mstatic struct platform_device da850_evm_tl_leds_device = {$ x# F- l9 U- G, D1 z" M0 l( c' h
        .name                = "leds-gpio",
8 K$ A/ P+ `2 i' x0 R. r) A& k        .id                = 1,, C, b2 _9 b& R3 M1 ~5 i1 I" ^
        .dev = {$ P, h0 y8 h# |9 f4 L
                .platform_data = &da850_evm_tl_leds_pdata,  z1 j. n  p$ u* ^" ]
                .release = led_dev_release,
" s+ R9 _1 U& F# e& p; P/ b        }9 N* ^: E+ h  ^0 w* P( E0 L, `- r& V
};
& D3 [# b' v" R8 T! x  l
: e8 R6 ~: b3 @6 _, Ustatic int __init led_platform_init(void)
: C/ q& }* x  I  f9 I+ `{/ f" z  A7 q4 \% w
        int ret;
1 f* D3 [8 E- ?9 P" \3 x' k1 ~#if 0
  ]5 f( ~' J0 R& N  C" P$ x5 a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 D% n( Q7 c3 b4 S% g& L: @2 c& s
        if (ret)
" \1 k/ V" I$ Z4 C! V# J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( X/ j+ k! t2 A8 E                                "%d\n", ret);
$ b! }: K; ~% w- S2 o, a/ }#endif) b2 u  k* x  E2 u. l: M
        ret = platform_device_register(&da850_evm_tl_leds_device);
. k1 Z1 w: n% ~- L* x4 E        if (ret)( @+ b$ G4 Z9 L6 @1 ~1 k& ~
                pr_warning("Could not register som GPIO expander LEDS");! m+ l8 X, F8 D; [9 Q1 M1 y! a! t
        else  m, r* Q7 X3 G/ G5 g- E& _! X
                printk(KERN_INFO "LED register sucessful!\n");
2 d1 w+ l9 _! m7 m" M: D) j+ A) g
: Y% U6 m. u. v# N9 i  ~$ T        return ret;  f9 Y" n, w' V! e* L% ~
}$ x- [% M/ R% |4 ~( d5 s' ^/ Q3 T
+ l, p2 Z- c" p( T; D2 Q5 d1 r
static void __exit led_platform_exit(void)
/ `0 p6 X1 L! s0 {9 Y{9 \$ _( q8 h" X4 X
        platform_device_unregister(&da850_evm_tl_leds_device);: H# O% `5 P! X) ?4 i

2 y2 I. {$ C6 a& J: z9 ]; @        printk(KERN_INFO "LED unregister!\n");
( l, c- m* Q% y8 T5 A$ d2 v' U}4 ?% b2 b* E5 ?' A# t  Y3 h

  ^+ W4 i7 g6 s/ M8 Emodule_init(led_platform_init);
: l- U9 h6 k+ A9 Smodule_exit(led_platform_exit);
& M* ?+ `) Z! K" Z: B1 O/ a/ r. G1 V5 R5 ~. k1 g$ h, r, w1 M
MODULE_DESCRIPTION("Led platform driver");
  ~. s5 ^# ]9 O- z  a7 A/ j: I, pMODULE_AUTHOR("Tronlong");
* x) M* d" _6 t3 H( z. KMODULE_LICENSE("GPL");- v. m- G- f7 P. d6 ?

5 v" K- B( {6 L8 x3 v  s# P( g9 K" P7 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 00:40 , Processed in 0.038279 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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