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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 q% `1 ^% n+ G9 p# Y+ z#include <linux/init.h>
6 _6 t. |9 r7 j$ s5 R% ?3 R# N#include <linux/module.h>
; S; u/ r3 S  v#include <linux/kernel.h>
8 W2 O% y/ c3 h' N: N#include <linux/types.h>
- d% R0 Q6 v  q+ @2 w#include <linux/gpio.h>
# H1 U$ p% N  G, t9 n! o#include <linux/leds.h>
$ F6 ~* s7 R3 r#include <linux/platform_device.h>
% f& j# ~2 T" u% {5 ^, r1 U- x, \1 e% u3 ?& L9 l
#include <asm/mach-types.h>
9 D: d- u. L2 F, g#include <asm/mach/arch.h>
- F9 J+ Y7 B0 n! H4 s#include <mach/da8xx.h>) }; ]/ L9 R6 {; O9 x! e$ H
#include <mach/mux.h>
/ A6 N& ]/ h& B& x6 B) M; I5 x3 o6 x" c$ p' J9 h" S
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 W& q/ o) x% P5 B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! |5 o9 e3 ]4 b8 X, w4 ^& {3 L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  |4 q* _2 u8 Q( p9 _+ t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) `1 P1 I" n2 F, W! P0 [. {+ k
8 }  k  D( Q2 C! f! v  y7 m( s* J; s
/* assign the tl som board LED-GPIOs*/4 Y/ Q% Z: ^9 H+ M3 I+ n
static const short da850_evm_tl_user_led_pins[] = {. ^2 l3 Y1 Z- A# y
        /* These pins are definition at <mach/mux.h> file */- N& ?! c9 J1 t2 b; l5 N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 I0 w" Z; n" ?& q/ C        -1" S6 o, Y4 F! l
};
- Z, n# o" _) A8 m4 u
  l% ~; e, M' i  C) s* X' x5 ystatic struct gpio_led da850_evm_tl_leds[] = {5 w! M9 K8 W3 J8 ~4 u
        {
( |. X$ `1 d+ x6 T9 c                .active_low = 0,, ?& c- @9 M, z! o/ b  ^
                .gpio = DA850_USER_LED0,
1 K+ i' ?/ ^) w/ i% l. f                .name = "user_led0",9 l3 F! U7 t* s$ w- V- h3 S* H
                .default_trigger = "default-on",/ t5 z) `7 i9 b1 X* x9 e" i
        },) X9 r6 c0 m) X0 l  A
        {
& u/ {! m3 F6 g! _* G& [                .active_low = 0,1 c9 f5 `, ]( O% ~( l2 Q: Q
                .gpio = DA850_USER_LED1,5 G' n' c1 a1 ]8 _) G0 ], {+ T1 y
                .name = "user_led1",
! \; r+ d) x: L3 b# N1 {' v                .default_trigger = "default-on",
. i) f0 [- ?8 J4 F; [' w5 k6 u( k4 A  B        },
8 k/ X4 [3 B4 i$ f  q        {! M2 P- f$ O1 g/ [! Y# j4 H
                .active_low = 0,' ]6 J1 c& v9 s7 T& `  ]/ c" C  k
                .gpio = DA850_USER_LED2,2 C/ F3 x" y; E2 ?0 Q& s
                .name = "user_led2",$ ?6 b+ _: i/ l( W
                .default_trigger = "default-on",& t( S# @2 h! X- P& }
        },1 y# ?+ C% Q+ ?0 T+ \
        {# y) J  C: j9 D# K2 o" y
                .active_low = 0,
$ v/ w- n, S) v! D                .gpio = DA850_USER_LED3,
% }% H/ R$ |! l/ S0 i) X* T                .name = "user_led3",0 i/ A0 y+ [7 u: }" i- ?
                .default_trigger = "default-on",
* m* c9 C8 r; ^, @7 U4 }        },
2 ^- ^# M7 z4 [5 b- C2 q2 c};
! l9 X: T2 H# C: X
1 B) }- b* g8 S; v- I9 b+ \static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 p, M% Y  |7 I4 {
        .leds = da850_evm_tl_leds,% b2 N4 C' t/ O8 d" b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 b0 C5 t' t& G1 T; `};
, d$ `0 L$ Q: t, N+ N- n0 Q7 L7 s# O+ Q0 ]" ?" ]
static void led_dev_release(struct device *dev)& O( p; l5 U3 C  Q
{6 N1 ~: l7 w* u/ f8 b/ w8 u. }: I: C
};
# R$ x* a/ C& U( a; m
3 p  ?5 @( {0 pstatic struct platform_device da850_evm_tl_leds_device = {
# J, t9 G; D! ]7 u9 F/ Y        .name                = "leds-gpio",& L9 K& A$ q; D& F7 L
        .id                = 1,
/ x( E4 l; `- c  l, w8 U, p. i        .dev = {' p" G4 E2 S7 f
                .platform_data = &da850_evm_tl_leds_pdata,* A) ]* b0 H$ k8 ~, }/ [* ~
                .release = led_dev_release,
& u9 i# `: ^9 j/ i: {- r        }
- I( R4 C7 |: \! ?};4 U% \; N- P" S$ _1 d
# w9 |) x6 z" Y6 m
static int __init led_platform_init(void)
+ [5 R0 x8 p/ u{# L' M4 P0 [0 @) |8 _6 n  g( F
        int ret;% ?$ R: J' b( o0 P, T
#if 0, s- y3 j. j; S; X% m7 Q. r. `2 W
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 \+ x0 m- R3 H; M# _% d" W
        if (ret)* N( p5 b% r& r, E3 D0 @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' W1 _  p: E4 P8 _: y2 x6 J
                                "%d\n", ret);8 N% ^0 x9 h" }6 p; ~9 U( A
#endif5 \' p' Z) c, h" u, k: e& A& ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
  N( B3 n$ x& I$ h9 L9 w+ r7 X        if (ret)/ Z6 D7 K  L& R: ]. R+ L2 k6 w
                pr_warning("Could not register som GPIO expander LEDS");
, V5 v7 B0 B% u        else  o1 z7 |' w+ Q/ C+ y8 w7 B8 _
                printk(KERN_INFO "LED register sucessful!\n");$ F4 r8 J" b# P. P7 p0 L  p8 Y6 t/ K
% M- b+ z/ I7 {, x" ~+ @2 P
        return ret;
- n9 n) d( P5 B$ }! N}- d( ]( J5 v* L, ~' P6 d8 b
. D. h. D& z6 A$ z
static void __exit led_platform_exit(void), I" Z$ t/ R& V3 D- u6 I
{, I8 z) `  n" I$ Q( V2 v  q9 z+ J5 _
        platform_device_unregister(&da850_evm_tl_leds_device);
! D$ s2 s0 X! o  q5 l* ?2 K
6 T7 A& U% T8 ~; `, _        printk(KERN_INFO "LED unregister!\n");
) ]4 k  ]- Q: ?+ T6 T! d7 W}
0 U5 Y6 l+ {" a% [$ H
9 O8 [# y; N2 w; w3 Smodule_init(led_platform_init);! r  @/ R; P7 i+ B% e4 z# S! v
module_exit(led_platform_exit);
* H+ o: W; E7 i! P: ]( L9 f, s8 Q
, I) q$ w0 [( V6 S- T( D4 h1 kMODULE_DESCRIPTION("Led platform driver");1 Q+ N& f7 ?$ {: q6 f
MODULE_AUTHOR("Tronlong");
; B+ ], s5 c  {MODULE_LICENSE("GPL");: b! K0 N# v: |, Z. a

2 J$ }) }% w& q" ~8 B- P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 04:20 , Processed in 0.039339 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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