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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ D1 g0 n) `( W, |: A
#include <linux/init.h>  g7 z0 Q9 |* R- i, d0 x8 d
#include <linux/module.h>  ]( \- l7 o+ M7 B2 M
#include <linux/kernel.h>" ~" B/ e7 A2 m) z
#include <linux/types.h>9 ~! j" Y! |6 N. j) J
#include <linux/gpio.h>
# L) C1 \$ S) x6 ^" ^, |3 Y7 A#include <linux/leds.h>1 P' F* u( R4 @6 R1 I
#include <linux/platform_device.h>
! U6 G2 J# \7 }3 L
5 I. _& d7 t& V) {! r#include <asm/mach-types.h>( ~- }7 \# k, k  y( j3 h; v
#include <asm/mach/arch.h>! w1 [. G: @$ Z! E* N
#include <mach/da8xx.h>- u+ z# j0 ~# i9 n
#include <mach/mux.h>
" n- U8 R1 u" J4 c" C( d. y* r* U+ q# o5 x; r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ _, h, a& |. _: a% V7 B! T0 p4 R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& ?9 p" L- g3 Z! v* f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- \! i4 M. a" f  N#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 r8 [8 p" {: a. C
7 R) g  `  G6 n/* assign the tl som board LED-GPIOs*/
4 g% Q' e7 K  ^# [static const short da850_evm_tl_user_led_pins[] = {
/ C% n+ U; r' b( a; ~: J3 ?        /* These pins are definition at <mach/mux.h> file */
3 g4 n, j4 P6 S0 N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 q6 w6 h1 u% E% I* v        -1* {7 p) v: m4 G3 F1 \$ |# ?- ^
};. R( }" z/ F3 X2 b( X

! X+ l" G/ m7 @) y2 Zstatic struct gpio_led da850_evm_tl_leds[] = {0 S  Q0 A- {, d- [) z+ F6 v4 r2 j
        {
5 K& v- W* f( r                .active_low = 0,
1 P' _$ X" _0 d                .gpio = DA850_USER_LED0,
  s& g& Q/ K$ ~  T' |& C                .name = "user_led0",1 l, w# Q0 g6 k+ P  i- |/ A2 Y
                .default_trigger = "default-on",1 P, O) x/ j8 Z* W% V' X
        },! q% E0 _+ Y; {" J# z# P" L6 r
        {  f2 o, ?7 S: Z
                .active_low = 0,
1 H( V; }" \" E# G  c                .gpio = DA850_USER_LED1,
) j+ u5 m' n* [                .name = "user_led1",) @& W1 ^( b* ?% ?$ V/ M
                .default_trigger = "default-on",# X: P4 k2 a$ y- u* a$ n. ~6 [
        },
# B0 M% i$ Z" U+ d        {1 l1 h) `  ]" I. I2 n
                .active_low = 0,# v. ?9 z4 J  f% B1 [
                .gpio = DA850_USER_LED2,
8 Z* [$ [* _( f: e4 s/ c& ?- F                .name = "user_led2",
7 ~2 S" w5 S, [0 e                .default_trigger = "default-on",; B6 [! W: P; m2 j+ M8 n5 O2 X% K
        },! x. D! m2 \5 {; r/ ]. p
        {8 {1 \1 ^" F: W6 w
                .active_low = 0,
/ i! t5 c% S% F                .gpio = DA850_USER_LED3,
& [+ X& H$ ?$ m" H0 l: {% E* _: \                .name = "user_led3",) Z7 w6 m" x  O- ?
                .default_trigger = "default-on",
; q  d# `# c& c  H2 o7 l        },
$ B9 f- T' Y* a$ [4 ^5 b  h* h: _};
2 W$ m. L% M1 m2 l8 }
# I7 h- _" k* d+ ?) Z0 H. ^: i8 C- @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" b: m6 W) C! O
        .leds = da850_evm_tl_leds,
! _- J$ E/ g8 W* g) u1 j/ _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" B; y- [" `8 j) @, P};
2 \( S8 o' K# l, H5 `4 l3 }6 L" i/ h! G% F' S2 ]7 |
static void led_dev_release(struct device *dev)
$ Y: p6 G; D% f{
0 C% s% h8 ?( f! x" l1 r8 ~};
: A: ?5 K) y# \* ^9 p5 V' D) K+ U( l
static struct platform_device da850_evm_tl_leds_device = {
0 P% g8 J; m  w! V% H        .name                = "leds-gpio",
5 Z: u+ y2 d9 _  X5 i        .id                = 1,6 s  Q7 r2 z, Q- n$ V9 G$ w0 ~
        .dev = {1 ]2 R: v' E# r. X) H+ I& u
                .platform_data = &da850_evm_tl_leds_pdata,9 r/ v" ]6 u7 b6 G6 i
                .release = led_dev_release,+ y- o" G! k7 ?+ }" V
        }
0 [! y# J. \6 ~, V/ e};
  I7 P# t% k8 V/ y4 H$ t/ n& ?2 d) b$ X+ N1 Y
static int __init led_platform_init(void)7 F% L- T3 ~3 ]3 k5 _1 d) M0 j/ C
{0 X$ [4 F( g  \$ ^6 q, `1 P
        int ret;
# {* G' B$ C4 h#if 09 i' I# f. J. J9 S) P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! ~$ a; f; A/ g; f8 P        if (ret)" `/ W6 P. O' t1 [3 j( {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 m# g7 f( Z/ g; E# g
                                "%d\n", ret);
7 L1 @; I6 _# i* I6 c0 |8 y' Z* u#endif
$ K$ x. p& o/ _: _' W3 ?        ret = platform_device_register(&da850_evm_tl_leds_device);+ k( J. n& A& R$ s( H4 y4 p
        if (ret), r+ r* f1 b& u( e1 P" M5 K. Q
                pr_warning("Could not register som GPIO expander LEDS");
) w' c& J' F; d" T- ?9 W        else
# e1 g* I9 V, E- a7 n; L                printk(KERN_INFO "LED register sucessful!\n");: m( Z5 T  M/ _9 s0 R
4 O3 Z5 b! m# N8 B
        return ret;
$ D0 c7 l3 x0 Q  H& r' o}
3 P4 d) M9 ]( v, P
3 x* T  D' N+ Z' hstatic void __exit led_platform_exit(void)# i: W. b& G3 r7 o
{
6 }) B9 K1 _7 t0 l4 t        platform_device_unregister(&da850_evm_tl_leds_device);3 N& `, N/ z+ f- [+ R' _3 v2 c
, T* C+ g# g7 }/ y! P0 `7 ?  {4 ]
        printk(KERN_INFO "LED unregister!\n");
# v* j; z( U0 n! H4 H}, k6 ?$ w* {: r9 u4 t$ A! g
9 T0 Q( f0 ?! ^
module_init(led_platform_init);
6 i) g# {9 O, o) V$ m1 i0 B/ Wmodule_exit(led_platform_exit);
5 m! }4 \( h  Y  p" Q1 g$ C, J4 k
. s4 x! L0 Z! ~- N8 Z+ D$ ZMODULE_DESCRIPTION("Led platform driver");
* ~8 e, Z% r) xMODULE_AUTHOR("Tronlong");
# h& q! G, n, c3 v5 ?3 jMODULE_LICENSE("GPL");" D# U" K, v0 ?7 e2 R- L  J2 W7 z

% V, q5 {- q# F9 f# t* }: ]1 r: h; V9 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 18:09 , Processed in 0.039892 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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