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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; T7 J3 l. Y4 c: J+ g
#include <linux/init.h>
8 I6 O2 H$ g5 J" \- q3 \#include <linux/module.h>
2 C+ Y' g) L* y/ R# Z# C' Z3 c#include <linux/kernel.h>: b3 a+ T; x; y
#include <linux/types.h>- z0 r) m2 M" ?$ m! ?% x
#include <linux/gpio.h>
4 h* L& }( l$ G+ q; \! k" q" p#include <linux/leds.h>+ j$ O/ u( Y1 v" a
#include <linux/platform_device.h>
+ N5 Z( f- E6 B
5 s; e2 a0 v5 s: y; O+ X' r8 R/ x! a#include <asm/mach-types.h>2 [9 q" I, r* o/ a& I
#include <asm/mach/arch.h>9 Z$ ~7 z: y3 v5 Y7 B( D8 L
#include <mach/da8xx.h>
1 W9 m6 W, I+ U3 d; b#include <mach/mux.h>
" p$ h1 u4 ?  [& N; V% _$ s! @" w: I) E3 D; J9 x' K1 B+ {
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 v6 ^3 O/ [7 P/ \' i$ }6 _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* C. W1 t! V1 `; q" c+ s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) l7 h5 H) S- }
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 x' w( z  L6 C2 b$ ?9 K

" Z) |; E$ \% W+ V/* assign the tl som board LED-GPIOs*/
4 ?$ N" [1 P) T5 I5 g2 nstatic const short da850_evm_tl_user_led_pins[] = {2 ?; b8 a4 K, q# w
        /* These pins are definition at <mach/mux.h> file */% _  n9 k; o) X/ W# r
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 @0 _/ g) ~/ d; y/ e0 a9 o. K
        -1
" h# i, ]3 k9 ~  o};
/ C4 W8 H! \& V* _% q) F/ h( {! l4 s9 k# b( g0 K
static struct gpio_led da850_evm_tl_leds[] = {! j& _& E" K3 p- {" p! \9 I
        {/ d) T9 |$ l6 H; I
                .active_low = 0,
8 I( {% [" ]% W; Q, y1 \& y                .gpio = DA850_USER_LED0,7 w8 K. m/ K3 @0 O  `( B& x: e
                .name = "user_led0",
% t# w2 R; O7 y6 v7 V                .default_trigger = "default-on",8 G# ]$ M+ _0 c$ [) B5 P
        },
+ Y$ x$ W& b4 H% ~8 M$ q0 j        {
, V# r" {6 {) s                .active_low = 0,
2 _9 ?9 b* R  r                .gpio = DA850_USER_LED1,) \" x0 Q6 K. G( W
                .name = "user_led1",% b# ~) Z  R. i. `2 c  G2 j
                .default_trigger = "default-on",
* D6 A" Y9 k) O: C7 s, x8 L        },
( w) l* n: h9 t3 D/ m" V4 K        {
; j  I/ e0 J2 p# B* q                .active_low = 0,
- z, Q; J- x/ M- Y4 ?$ @7 ~# i1 E9 B                .gpio = DA850_USER_LED2,0 v5 X% y7 w  b* M7 T6 n, ?" \
                .name = "user_led2",
) B' K- b7 ~7 D                .default_trigger = "default-on",, Z2 J& S7 {1 V' e8 I
        },
  I' s( y9 d+ y- G( `3 m! ~        {. M1 Z. y3 C% {  s: t+ T" I. x
                .active_low = 0,
) k/ |% o# c5 h+ s+ ^$ r9 }                .gpio = DA850_USER_LED3,6 {. \3 |0 f" A$ o8 s
                .name = "user_led3",
* f/ v# k% q# R! h4 K" x7 U5 i                .default_trigger = "default-on",* U: L- Q) n' S
        },
3 I& O' M  z% Q8 k( z. }};
7 ^8 ?2 s+ W4 q$ w
+ C5 V3 B7 I6 N+ w, H5 M  |static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 j( D& G4 o) x: g  S
        .leds = da850_evm_tl_leds,/ I7 X  I, F. `7 R# u' a0 H7 P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# m  t; h) P/ d  ]1 a};
  d* l5 n  E8 G$ {9 [8 ^
3 Q" I! m# E/ Y4 Cstatic void led_dev_release(struct device *dev)0 h  h9 \9 [* A
{# j; z' r+ V& K1 Z9 v; \
};7 c$ d' {# ^% l* v6 A
$ q6 N2 J6 K2 F
static struct platform_device da850_evm_tl_leds_device = {3 i9 t! `# d% j! U( E' D" |" b8 U" C
        .name                = "leds-gpio",- E; K: I* U) G% e  f, b6 L
        .id                = 1,
7 W" w/ l# D) r4 w  A        .dev = {3 Q' u. ~% q; ?4 g; m
                .platform_data = &da850_evm_tl_leds_pdata,1 u, H$ C; g; ]  E+ g  {5 x
                .release = led_dev_release,
' [- n& }3 J' w- @6 h  K4 I        }
; U+ e0 T. c' c6 w5 R& A) ]};( w2 ^' [# {( q9 v
: u: t' I! k* w# Y
static int __init led_platform_init(void)3 a7 T# |* {' w+ c0 t. }! q1 P8 m* n% o
{; n1 M0 u% J% Z
        int ret;
1 \" e4 k8 o/ Z# o3 ?! P5 k#if 09 l9 c1 k! K, `& G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! e/ F# f( J& K9 `! M        if (ret)
2 l" |6 w& e9 d8 |1 o4 U6 a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 C/ @7 p/ l8 F% D                                "%d\n", ret);0 K0 ^# U3 G: W: F
#endif
6 D+ s* \- s' x% C; v3 C        ret = platform_device_register(&da850_evm_tl_leds_device);
/ t$ c/ X  F6 z* P1 W4 a# M        if (ret)3 ]- ^2 G. C: m4 C5 a9 ~" a- ^' `
                pr_warning("Could not register som GPIO expander LEDS");' }7 m; r- X) m& E0 r! ^# Y
        else
! e' R3 H' j* j7 W! l$ @                printk(KERN_INFO "LED register sucessful!\n");
( g) h% ^1 z5 k! \5 z5 O" K+ Y) K
0 W0 f- j) t0 X, w* Y& u% x        return ret;
4 _% ?- r' O0 a% Q! |+ G% f* `+ G}8 `4 C# t8 A2 V5 \' a7 Q+ q

4 z; m, F' m( m/ v5 ^7 ~  Kstatic void __exit led_platform_exit(void)7 @2 _4 h1 O+ `+ y
{# W* j$ \% D3 N' V. L$ K  P
        platform_device_unregister(&da850_evm_tl_leds_device);5 t9 s5 ~9 W0 `( m- [1 Z4 P
6 i, H7 H) e2 W7 ^$ o, S
        printk(KERN_INFO "LED unregister!\n");
- m3 c+ b4 [7 N: W  z}4 M! B5 y  H+ [/ F7 X" @

9 G: r- w; @) r/ p) Kmodule_init(led_platform_init);* L( D# C3 N: m5 x$ Q! k& V
module_exit(led_platform_exit);  k' @* I! g& o0 ]% O% W. z- |5 p

8 i$ t: |5 P; d; G0 k/ b5 vMODULE_DESCRIPTION("Led platform driver");
4 s# x3 j1 N# s7 }& YMODULE_AUTHOR("Tronlong");
: }+ o9 h  i8 {. k" m6 |2 |6 z5 `/ QMODULE_LICENSE("GPL");
" t; {/ A; B: U; u: \; o# U! I
/ r; R: {! M/ R- @" y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 07:13 , Processed in 0.041002 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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