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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3660|回复: 0

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2018-1-19 19:02:07 | 显示全部楼层 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 \! S7 i( w. z) E5 ?#include <linux/init.h>6 |+ H. q, F7 S( E/ q! h5 W& Q5 f
#include <linux/module.h>4 F* u) N; G0 F, a# d4 ]
#include <linux/kernel.h>4 o' H/ W' p1 R  j
#include <linux/types.h># p& z; F4 U* ?- I
#include <linux/gpio.h>
# j/ M$ C% z! V; T$ `#include <linux/leds.h>& |+ \* K+ P! }/ L: X
#include <linux/platform_device.h>9 D3 [' u4 W8 ^) E3 {' v" @
' W: }, Q6 n* L% N) `- C8 m
#include <asm/mach-types.h>
3 z6 N4 y! h, }6 }6 O2 T, @#include <asm/mach/arch.h>; u, u. f4 V0 C6 E; r
#include <mach/da8xx.h>
, l9 q- k9 X7 u4 W0 H$ H5 P#include <mach/mux.h># O5 C* J: j( w  @5 E
6 ~" `+ n/ B' R5 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 u. f4 C$ ~6 w3 l#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! l1 B/ B2 ]2 b0 K  j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 X9 U, \, L; j# t2 s$ c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& q4 ?' t6 c+ G3 m6 N3 M, Q5 N

( B$ h7 j) h. N6 i/* assign the tl som board LED-GPIOs*/
: Y- H( f2 c: ^1 f$ m9 K5 m" Q) @static const short da850_evm_tl_user_led_pins[] = {
' Z/ T( |9 Z, E, @        /* These pins are definition at <mach/mux.h> file */9 j: q$ ~" _$ I4 S9 ^  S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 {, h: V3 I! ~9 D3 }2 q        -1
( Y+ s7 V$ o% ]};
' F9 ^+ j; c+ F6 I; k, J2 x2 D
* x9 {% l) K- L# f6 v3 Tstatic struct gpio_led da850_evm_tl_leds[] = {5 x& p% N$ o  n; t% X( b, g) G$ [0 G
        {/ r. Q& ?5 w) j2 m
                .active_low = 0,
: B' H3 w3 X1 R3 E+ W7 V                .gpio = DA850_USER_LED0,6 L, A" z6 W/ F
                .name = "user_led0",* \5 E6 W) L! p. X5 h
                .default_trigger = "default-on",
- C4 t$ t0 V; W1 Y! k# K        },
9 ^+ }* z  t. }# ?        {
, C. r% @' G. `& K                .active_low = 0,+ B/ q6 q- o  k: Q# D
                .gpio = DA850_USER_LED1,
, h& H6 |, k; X) n- n                .name = "user_led1",
2 B$ K, x* A1 X                .default_trigger = "default-on"," t; D8 |4 o# Z% T: n
        },7 K1 u+ E9 v) `
        {0 H& E2 u- P# u% [; Z4 b' X
                .active_low = 0,' ^" y, l/ P& [+ a: L# k, o' p
                .gpio = DA850_USER_LED2,
8 H& Q  [/ O* u" w* F/ z3 M                .name = "user_led2",
2 A, H( p9 o+ u% G% G6 _8 T7 x                .default_trigger = "default-on",
2 w% U" V5 L$ ^! o8 a7 i" _        },8 `" t/ D! ^7 k4 k- s# W
        {
# T4 D+ g6 t' V                .active_low = 0,
) F- G. U3 A+ q4 c" ?                .gpio = DA850_USER_LED3,
, |$ x: m; P  T( m+ R$ `9 X1 f                .name = "user_led3",
" P' r* ?0 s# f$ S1 B) [% b                .default_trigger = "default-on",6 P0 D$ V1 t6 g7 T8 Y1 B$ `' J
        },
- a+ [( K7 A9 f' p, K, X};9 P4 S* j  z) l8 @) k
6 t8 x- k7 O# ~4 \, L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% u/ S/ q" d) a' w/ B9 A" c/ [        .leds = da850_evm_tl_leds,% c5 K9 {0 ^* Z! i3 I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! j2 |2 j5 Z. |/ `! _: a/ D
};/ [! V7 M, `. a! y4 y
$ w5 f  J8 t- W% h% y
static void led_dev_release(struct device *dev)
$ J$ l0 h- J. E4 b4 g9 v4 V" l{
1 m. A3 \  A7 S: w6 n};
* ?8 s* E1 {. z5 {' ]$ {+ m+ m2 k' L4 h! Y& Q
static struct platform_device da850_evm_tl_leds_device = {
7 H' J/ z' B9 ?# |9 e        .name                = "leds-gpio",
+ d/ f- [$ O8 N        .id                = 1,! y0 ]& i0 s4 L7 m! Z9 c
        .dev = {
" a! w2 N+ N2 N6 r7 K+ q- n' p                .platform_data = &da850_evm_tl_leds_pdata,
! O! j' g3 s7 U0 j* `                .release = led_dev_release,; U4 Z/ w# S; Q1 c
        }
( ?  n5 V, _4 D8 J- Y* t};
& k+ B  S  j# o( ~0 i2 T
5 d6 X3 C: s( n# A0 V2 Nstatic int __init led_platform_init(void)
  |# v+ I7 t- Z5 u{( C0 q% D% ?" ?5 f9 c) e
        int ret;
5 v2 `- {) X, X! i9 H#if 0, D$ _8 p! w0 P- e- r  F% j( ~' ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 ^8 Q. w' Q2 L
        if (ret)
2 ]4 S0 G+ u; F7 T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ _# p, y8 b2 i- D" k% ?1 A: D  l                                "%d\n", ret);
' h3 |) d/ s% n9 A: r#endif0 A( E/ u  Y1 u6 O0 m7 Q4 @9 m
        ret = platform_device_register(&da850_evm_tl_leds_device);8 ^$ W* b! X5 I/ ?! f3 k4 A
        if (ret)
) z/ P* r1 i- H/ ^  F, C$ m                pr_warning("Could not register som GPIO expander LEDS");1 g4 C$ |# D/ @2 b: [  [( {/ H
        else
+ W+ Q& m/ m8 O* R                printk(KERN_INFO "LED register sucessful!\n");
9 E: r! i' T# ^) c7 T
/ k: s& J: i! A0 b0 q1 T        return ret;2 E( X; N/ p9 l2 ]* f% z# ]& ~
}
: x5 H$ A& p9 Y  [2 c% n. C& R: K/ ?3 O7 r
static void __exit led_platform_exit(void)1 N4 x+ `4 a# n! h) f' o0 g
{
0 h3 j* ^9 K! K0 }& j        platform_device_unregister(&da850_evm_tl_leds_device);
& g1 `) d4 |. \2 t6 o; j7 K
! G7 N: h( \# o2 s8 O        printk(KERN_INFO "LED unregister!\n");$ S) [, o, p" _/ y$ R' p$ q
}
' A4 g8 ?( g7 v& [; c, T& r: M; L  l7 L, P/ l5 _9 Z8 i
module_init(led_platform_init);& A; ?9 K) \* ]0 ]( Z/ F
module_exit(led_platform_exit);
( A9 h8 V/ l/ l6 v8 t2 i; c: G' B) d
* |' I5 s, a* p9 Q. ?MODULE_DESCRIPTION("Led platform driver");
, S" Y4 U4 E/ P( t/ ]1 j4 _MODULE_AUTHOR("Tronlong");
# t; O, W4 P. I% q: |( dMODULE_LICENSE("GPL");
$ U- P# g$ j3 h: ~( N# j& Z% d  T  J6 c, @
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 18:36 , Processed in 0.038418 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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