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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  ]( ]4 j5 F' x) g4 V; p
#include <linux/init.h>
/ y" @( V' e! h#include <linux/module.h>
& S' K9 x( G" Q. j#include <linux/kernel.h>
1 y1 j$ ]/ [  B2 K* ?#include <linux/types.h>2 s! ]; S$ u* a! c9 i8 b! p, N
#include <linux/gpio.h>$ A: s( U( T) u' R2 m, D; g
#include <linux/leds.h>- q; Y+ X4 `( Q* _& ^! ^
#include <linux/platform_device.h>3 o4 q9 S6 }3 D1 H) b5 W

5 O5 ^1 N* J* y#include <asm/mach-types.h>
' l+ X: w- _8 [+ s7 b4 \8 t% l#include <asm/mach/arch.h>
7 x/ g6 U2 Q+ t$ U#include <mach/da8xx.h>
$ \; L* S! @/ _+ }* S3 s2 |#include <mach/mux.h>( R& {0 N  ]9 O- R
. _8 ]; M  S: y4 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ p3 C- ]+ L' t$ k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); W3 `) e9 V' p  Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 v, R3 P2 U( O! N2 l5 H' \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! G5 d" t) U1 B' F, l
7 ^+ G% l6 S. l4 y5 K/ w. C/* assign the tl som board LED-GPIOs*/
' Y6 `4 `! X' G1 hstatic const short da850_evm_tl_user_led_pins[] = {4 N9 `+ f6 W: ^: }3 V
        /* These pins are definition at <mach/mux.h> file */1 ~; Q- |$ i0 f/ D, y- H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 K9 ?2 _; x0 _& h. L. j        -1
1 Q. g2 u# c0 _8 ^! I};
% I) h- c' M& |) Q8 j
0 h0 W# D$ A4 X! }. @% Q" Tstatic struct gpio_led da850_evm_tl_leds[] = {
8 T2 |5 D- v: O9 D, c        {  V3 {, _1 F% w! x6 C
                .active_low = 0,+ H: H7 V$ X4 I4 t1 \
                .gpio = DA850_USER_LED0,' R- h9 u+ A# C0 v) b, J+ _# p! t+ f" Z
                .name = "user_led0",! \1 Z- h: m/ X( |; M2 C
                .default_trigger = "default-on",' J8 N& ?% e; g2 V4 `9 ?9 v
        },
- U' v8 U9 R! Y+ d2 b" \& D        {" r+ L$ `& y8 s' R
                .active_low = 0,
6 g2 J# W8 [( c+ B( P  B                .gpio = DA850_USER_LED1,8 O- \& i, d/ F# Q& O1 ~
                .name = "user_led1",
- {8 m8 |3 u' ]1 T/ q( p                .default_trigger = "default-on",
7 T0 ]" x, [3 {- R) g! J" w        },  n( O8 y1 S, @6 L1 B  M
        {2 h! t; p+ \1 P9 v: H4 ^
                .active_low = 0,
' Z+ M+ [8 [+ ?, z                .gpio = DA850_USER_LED2,
1 D. d8 e5 b# y* s# b7 o                .name = "user_led2",  Z1 k( {/ @3 t, {3 \
                .default_trigger = "default-on",
5 h% i) q: G, K" ]! F, n        },% @, F0 ?- j2 f
        {" b$ }( t% n8 h2 N
                .active_low = 0,
, G1 J: w; C4 b7 ^8 M9 e                .gpio = DA850_USER_LED3,8 F0 b/ z) ^& }( s# T7 u# D
                .name = "user_led3",
9 n; D; @; T5 K                .default_trigger = "default-on",
0 Y: |: Z1 g1 M! m        },  ~3 M( p7 N( P- a/ \6 M/ m
};
9 k" [& W4 c0 A1 U% B) u4 q
% K$ G3 D! `$ }- G) S5 Qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ B* `1 U* @! W! q) Y
        .leds = da850_evm_tl_leds,2 a8 Y$ i6 a4 C9 ^7 P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' D& d5 g( ^7 k, l6 f( e3 H% Y
};
. k3 \1 F" k; O8 N5 s( _& r- [2 p; Q
static void led_dev_release(struct device *dev)
$ f* W; h' J; L" x; L+ }3 r0 D& b* l* j$ _{
, k% o6 A# D' B7 e};
7 u  O% Q3 n& {, f* Q$ j1 Z+ g8 W, i1 Y  y8 w" F
static struct platform_device da850_evm_tl_leds_device = {1 d5 k: [) F7 W' }6 c, V
        .name                = "leds-gpio",
7 e7 r6 j8 I. `) \& _        .id                = 1,7 Z' S! V7 ~% S( `5 Q7 [- c: I
        .dev = {
6 b0 O4 d* h0 B; m                .platform_data = &da850_evm_tl_leds_pdata,
. g9 t1 Z& ]( M  L) I+ X2 O1 I& s                .release = led_dev_release,3 F8 t1 P# n6 O7 A
        }+ K8 b6 I! B  b; D5 {6 |
};
! u" E3 p* z8 U" M( U' J
; ]' c2 t' G4 A) |static int __init led_platform_init(void)* ]( G) Y3 O; l5 Q+ V" |
{# W5 O$ Q' ?. F, K4 ^6 K
        int ret;1 O9 U: V2 Z7 n& S  c
#if 0, u$ M. j  [- ^* \  p+ U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) _& K# D- j; S. |% Q" I  W        if (ret)
% r; y+ h! p) w4 p4 U2 `0 n9 j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ K1 }4 z. P8 M- y8 M
                                "%d\n", ret);8 P: ~+ n" z: c7 |
#endif- O& p/ F0 j6 P
        ret = platform_device_register(&da850_evm_tl_leds_device);
: N$ r4 v0 U$ q/ Q+ \. N! D        if (ret)8 T3 _* Y4 \; ?! Q5 w
                pr_warning("Could not register som GPIO expander LEDS");
- _" v! D7 G4 q: S$ i. T' D8 q: E        else
) }6 K' A- y9 _% R( R0 ?7 ?( X                printk(KERN_INFO "LED register sucessful!\n");4 K/ t6 Z! D3 j* q' D
" I( b. ~$ ^% d7 W
        return ret;
! [7 [1 i) E% ]" S  K. f}
8 m( A6 _* ]* }5 V, ~8 m! x2 W+ P; N7 b1 o0 z
static void __exit led_platform_exit(void)  }6 Z! j& J- Q& ?% k
{
* W+ N! Y& V" z4 A0 V# U/ g        platform_device_unregister(&da850_evm_tl_leds_device);) i! [6 F' m) v& r+ r  s7 K

+ ]- ]# Y8 E2 `2 i! \) Q0 ]* y8 H        printk(KERN_INFO "LED unregister!\n");
: i: X2 B' ^9 S9 H$ z0 A/ L! r}
3 [8 H$ x# p+ e0 Q
# Q' ?: P# G4 l7 bmodule_init(led_platform_init);, [1 n, p4 ^6 }- H
module_exit(led_platform_exit);, g- b4 ~$ S/ F0 _- f

( T6 c7 _$ ?- v8 J( v9 G0 C- Y+ mMODULE_DESCRIPTION("Led platform driver");
6 z8 I/ H. `* D: N0 ~MODULE_AUTHOR("Tronlong");
) `, U# s$ h4 r% nMODULE_LICENSE("GPL");3 }% O* `, W4 Y. d+ Z' j/ [

0 j8 e0 ]9 N5 n# Z7 j! i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 23:07 , Processed in 0.045191 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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