程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 {- P) _2 G: |# c! g, S! c0 z
#include <linux/init.h>
8 |+ W# m# A* J$ J9 ~#include <linux/module.h>
+ M: u8 k7 ~- ~+ f6 }. z#include <linux/kernel.h>! ^. @1 k/ l, c" z1 d+ J
#include <linux/types.h>  D- I. F1 ?; ^
#include <linux/gpio.h>
7 K: h$ Q' M8 N8 Z- u+ u* K: n#include <linux/leds.h>; u1 e4 V9 `$ J- @& R
#include <linux/platform_device.h>4 {: O. [+ X6 }& ]6 w

# k/ A, C( p1 q# B* W! X; S#include <asm/mach-types.h>
( q' ~: C* M, _  x/ k2 \#include <asm/mach/arch.h>3 @" u! A* e( V  j
#include <mach/da8xx.h>
0 X. I) W4 p1 q/ j- X#include <mach/mux.h>% f7 M: S8 _; ~; `2 @7 G

- I9 j+ u1 c' t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 l/ V" Q$ N. m% J2 q+ o) r- M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( L, Z- b1 P6 y; D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' `3 _/ _. F" o+ \
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* H6 p- ~* P0 O$ v
& x1 L# I$ Z. i/* assign the tl som board LED-GPIOs*/" |8 Q4 u; u: K+ m( ~) V
static const short da850_evm_tl_user_led_pins[] = {
6 K9 v* H  j7 Y& J1 K. k        /* These pins are definition at <mach/mux.h> file */
' J1 K7 w3 T5 u& b1 x) N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ I2 ^# ^( |" E! [) j        -1: S. N; l* P* I- D2 a# z" A  `
};
* i3 B0 U+ W  `( T( L# e7 u/ N/ y; @
static struct gpio_led da850_evm_tl_leds[] = {& o' u1 N; u8 A4 w" x! u+ |3 w6 H2 B
        {, Q8 t1 s( W- D: X% u/ m+ F* N1 p
                .active_low = 0,
5 e; U% J$ j8 X                .gpio = DA850_USER_LED0,5 I2 Q$ F. S: @7 E. c# ]
                .name = "user_led0",
" a& i2 c% S9 Q                .default_trigger = "default-on",, O/ z5 S# x6 N
        },
1 U' t% S- q' S8 P        {, f& s8 I* U( ~5 l
                .active_low = 0,. S' ?2 _% O* e5 F' H3 U) y: u* f0 T8 Q0 m
                .gpio = DA850_USER_LED1,. y6 d) p) h' P0 S
                .name = "user_led1",) U6 |2 u4 |) ~) O
                .default_trigger = "default-on",7 @- p% p' f0 q& j; `0 _- j) H
        },
* Y: y) q3 v1 y0 l' h4 @* [        {
: w; p8 ~) |! z2 D5 R7 T7 ]: f                .active_low = 0,
, @( a1 q8 X+ y" D' c( P                .gpio = DA850_USER_LED2,- w6 j/ |+ N0 L- Y
                .name = "user_led2",$ S2 b6 j. d, V7 a8 }% |+ }) E
                .default_trigger = "default-on",/ j! E: g8 `4 z  |$ W
        },
( i. X. s$ ^- s5 b+ a- v        {) m4 v$ J, O+ m; V! L9 S, j+ M
                .active_low = 0,
/ N/ X- _. M- L5 Q/ q                .gpio = DA850_USER_LED3,  ~8 r  H. ^# j+ i. Y, U
                .name = "user_led3",
* H' `! u' k9 ^+ t3 G                .default_trigger = "default-on"," F$ e, R7 K- l1 Q  i- a
        },
' O1 `, @) z! M) E9 u7 ?( c};! j, v7 F7 g: E6 x/ g; H& ~* H

. e  R+ b. j/ V' X/ |) Y) r: @, ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& k; Q9 ]- r0 P" H
        .leds = da850_evm_tl_leds,
0 Y$ F: D: v: M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& Y+ s2 F# z! p0 Y6 y. ]};
# E: ], [! B! b1 e" w  F7 T( X/ b. f8 H+ a
static void led_dev_release(struct device *dev)
0 m3 i& n* N: o' F- J0 u0 B4 ]8 h, c{
3 A: o: r5 O1 w- {5 \  u3 m( v};
( [: h1 ?# @2 m  n% Q: q. v3 H- t9 d# J, }% Z$ A! f& B2 _1 j2 ^
static struct platform_device da850_evm_tl_leds_device = {" o9 L( i7 f, y2 Z, j  y
        .name                = "leds-gpio",% g5 r6 `: O/ R) b: A5 u
        .id                = 1,$ r, \3 M- s$ `0 l- M. l
        .dev = {
* S2 c1 {6 _7 o8 y+ Y                .platform_data = &da850_evm_tl_leds_pdata,+ Z( i8 L/ d) ]" ^0 F
                .release = led_dev_release,
5 O& b( f% U0 k- G4 f# `        }7 i# y7 t5 l4 s: G# a1 M- Y# m
};. l0 r$ |% h/ j  Z+ s6 U

/ `  b# O( {2 l& d3 P  r* zstatic int __init led_platform_init(void); X+ v+ H1 Z$ ~- A5 b. A
{6 p& S- Y1 H1 [! h  J4 v5 _) V
        int ret;* ?3 s4 g6 S9 V/ i( o
#if 04 q" g) k; b, R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& B( E5 u0 c/ b3 b! C
        if (ret)' M" p# T* v* z9 I* p) k& e3 s# u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 O/ @; W- V- b5 y7 q9 v" y. e( I
                                "%d\n", ret);) y) W4 X" {+ \. X( X2 R$ ~
#endif
( U: f& O1 R# j; [        ret = platform_device_register(&da850_evm_tl_leds_device);
) l7 G" `2 V( Y" M        if (ret)* d  N6 c( s, l7 p
                pr_warning("Could not register som GPIO expander LEDS");4 D9 S, k9 ?) m* H- T
        else
$ o! @+ ?% I, o2 E# o, h+ X! u                printk(KERN_INFO "LED register sucessful!\n");
8 ]" t; Q( m+ Y" s2 W. u
9 {$ u; m7 X/ [# S  _$ t        return ret;
2 a" |7 e1 |2 x0 q5 L}
2 `4 n4 j: |0 T& ]1 _# S' R4 P0 G9 }4 |, q+ F0 K
static void __exit led_platform_exit(void)2 L9 z! g7 o) R; `
{0 `2 ]- L( T0 y+ R
        platform_device_unregister(&da850_evm_tl_leds_device);, _2 _; }7 Z8 n% T
* S  R3 N6 v8 f6 S; B% F# b: [
        printk(KERN_INFO "LED unregister!\n");: v1 V7 Z; f3 x, ?: ^! G6 ]
}
5 H7 O2 G- Q3 B: k- a* }6 i$ x0 [3 z- z3 h6 X
module_init(led_platform_init);
3 D0 p$ {7 Z' Qmodule_exit(led_platform_exit);1 N. c- A7 ^9 N" F
* m1 }3 `7 r5 p+ T" \
MODULE_DESCRIPTION("Led platform driver");
4 R% \1 W) u" \  ]8 d6 hMODULE_AUTHOR("Tronlong");
  d" ^  D' _) {$ n6 @MODULE_LICENSE("GPL");  ?8 D& d0 i7 a

' K/ Q' o8 t, U, l2 ?; a" q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-31 09:01 , Processed in 0.042892 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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