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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" r* d$ a( [" H; `; X1 w#include <linux/init.h>+ s: b) |1 t0 H9 P3 B7 }
#include <linux/module.h>
4 L! O! _$ |5 Q$ q5 H9 g#include <linux/kernel.h>
5 p) e2 E6 m8 D0 G#include <linux/types.h>
, S& F" q' P; D#include <linux/gpio.h>
& n* C9 Z! ]4 v3 b: M. K3 l#include <linux/leds.h>2 n, ^. D, w; x+ L
#include <linux/platform_device.h>2 T2 ^, C/ K; B7 D1 D# R0 P

& D* K* \+ a( }5 @! B$ B#include <asm/mach-types.h>2 K/ v3 p2 [% \7 x
#include <asm/mach/arch.h>" N2 u& h( ^, W( E; V! A
#include <mach/da8xx.h>4 i! ^0 t, X2 H3 A6 a" a4 a/ y: F
#include <mach/mux.h>9 v% l% q* l8 k

/ C5 z2 R$ I/ k: D0 I. y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ A9 A' x9 a" c: X( v. @" E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 M0 p0 |7 r+ o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 P# w; W* T9 U& g- H0 }1 d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 M) @, B) A2 ]) w! q' [0 J  `" K1 i6 O5 L, x6 [7 N
/* assign the tl som board LED-GPIOs*/( L0 {1 z1 r; D$ \
static const short da850_evm_tl_user_led_pins[] = {: o! C6 H! u4 |9 p5 F5 i' A) q
        /* These pins are definition at <mach/mux.h> file */3 l; E+ a& U4 v0 O! R4 m0 ?
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," W* Q- `% v; g1 a1 I
        -1
7 O2 S/ {# r- a};7 h/ D8 J9 }5 N3 ~3 k
. m6 T9 R4 k( ]0 ^- t
static struct gpio_led da850_evm_tl_leds[] = {, t+ v9 v; t1 i+ a9 N% z0 a& y% ?
        {
) t, Y4 }% r/ I  v3 W$ }1 B                .active_low = 0,
! l' J$ O) _, h, i0 n* C                .gpio = DA850_USER_LED0,) K5 h9 O0 `9 w1 l
                .name = "user_led0",
1 h9 }. s4 n) x% ^& b8 m$ F9 f                .default_trigger = "default-on",
  w+ L' ^2 v* l1 J3 Y, q5 T, X        },
- [0 Y6 `4 O* d, R: B  a' k- h        {
  n5 p4 U2 N1 x+ x6 _% u0 W) {                .active_low = 0,# }; C2 B6 B( ~  a# d7 `
                .gpio = DA850_USER_LED1,% `; s; f- b. [2 X
                .name = "user_led1",
; f0 J- L- R4 }, T: O6 g0 p                .default_trigger = "default-on",
4 _# U# ~" R2 @% n4 u1 ~( S        }," s) X6 s+ T* F& T, j7 ^9 p: C
        {
+ G& f# V/ H/ Q6 @9 A                .active_low = 0," a0 Q6 ]5 A/ H6 m6 A# n5 K$ p- Y
                .gpio = DA850_USER_LED2,
9 e9 C% S! `2 |6 G4 c- n8 I3 C                .name = "user_led2",
0 H% F" n4 N5 n2 u                .default_trigger = "default-on",
+ j* R$ ~( j8 I* d+ U1 k        },
2 z, b' c+ q" |4 F* k) i        {
4 a& v; k. c8 D# @9 u5 b# t% P                .active_low = 0,
4 v* k5 [3 ~. Y" k5 x                .gpio = DA850_USER_LED3,
+ t5 [; \( v3 ]                .name = "user_led3",
; P, W* D1 J: D/ G: Y                .default_trigger = "default-on",6 N: U* u2 }. E
        },
& V2 N& [5 y$ N9 v};% B8 [) @$ f! }5 ~( c

" B1 t6 M' ~1 K; \1 l6 w, V% Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ i9 c" C- U& q
        .leds = da850_evm_tl_leds,% N6 b% ~1 O- P" R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ M0 J! @- X8 }1 f
};
# \9 L; a; D& j/ H, h7 V& l: S" W8 Y* E3 d
static void led_dev_release(struct device *dev)
; k9 U+ W5 |( I" d( R2 O{( E7 c# m6 N# A- x
};
" h# ~, y5 x0 z+ V7 a
1 F6 C, C8 R: l3 R' k5 r; B, p7 Rstatic struct platform_device da850_evm_tl_leds_device = {6 p& R$ Q9 k2 v. I2 b& s' D+ ]
        .name                = "leds-gpio",7 S! {5 g3 K9 m* ]
        .id                = 1,* |/ J6 m/ M2 ^
        .dev = {  q$ ^- A- U+ O
                .platform_data = &da850_evm_tl_leds_pdata,3 S, H3 h# T6 Z/ J% N
                .release = led_dev_release,  ?$ @7 A. {) z
        }
1 g$ M: ^% ?# ~: ?};; z0 p% a6 }$ d0 }+ l" s6 u

2 h( z# {1 g; E, Astatic int __init led_platform_init(void)
8 o$ J8 R5 o; `; F2 k! [{
+ t9 R- [4 @. Z1 m3 `        int ret;
7 `( `& t8 C8 A* u( Z8 R8 T: @#if 0
' }" ]5 l9 r) I0 j- }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 M- ~* B4 m; C1 z6 y
        if (ret)
8 }, o2 [& k6 j+ T# K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- i8 r& F9 N. K+ R) a
                                "%d\n", ret);
+ V) G. Z+ h, T. i, v#endif* @6 c' \2 {1 v: r) a5 H
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ J# _3 T  X  A% i, P$ J        if (ret)- O. P7 v: Y, p8 a* F
                pr_warning("Could not register som GPIO expander LEDS");( E  T, E( B6 q$ e
        else
# I3 w" x- x; F; V) p                printk(KERN_INFO "LED register sucessful!\n");+ G2 ^. W% t9 q# a9 e3 t

5 I" x% M+ m' m        return ret;
2 E+ d3 F2 ^0 l# _8 \5 S}
, Z: H+ P4 W% U8 C8 ^4 B$ h; x
0 C) p0 T# ^' u+ h& ]8 X4 t4 Dstatic void __exit led_platform_exit(void)
) Q: [9 U  R5 `{9 c/ y4 u5 h& K9 t6 \
        platform_device_unregister(&da850_evm_tl_leds_device);8 S' z/ I* _+ g. K( V
: Y8 w8 b% [, r3 i6 a: b4 e
        printk(KERN_INFO "LED unregister!\n");
# Z& V" z8 E% ^* Z$ r0 |}  f0 d8 [9 N" K2 z5 _& ]: T

" T3 a  o( V6 ^/ ^) }module_init(led_platform_init);
2 _9 T/ W; G9 P0 {; l: }module_exit(led_platform_exit);
1 B; M3 m3 H* V8 e; ], G2 X
& ^9 {4 ]5 _% H6 e" xMODULE_DESCRIPTION("Led platform driver");2 Z2 h' R  `+ m+ S" p
MODULE_AUTHOR("Tronlong");
6 [: q+ a& t+ y( s& R5 d( @, g% dMODULE_LICENSE("GPL");
  W: ?: U9 g, g8 F  d8 I+ O0 C$ Z$ H: T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 14:28 , Processed in 0.040290 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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