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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 _- w- }  r) n- I8 k6 Z#include <linux/init.h>
% i# O, _4 A+ Z#include <linux/module.h>( L  h3 u' o% s& s4 w
#include <linux/kernel.h>* ^5 W7 p# D( ?1 W4 e% E/ \
#include <linux/types.h>7 n% b# x+ ^( g9 S6 W0 \5 A
#include <linux/gpio.h>
4 p+ \% _" l, @- R3 ?#include <linux/leds.h>
& I. u0 j+ A8 J9 @2 b#include <linux/platform_device.h>
/ p1 X7 m2 N" a1 L2 }" }+ g9 o
! F, N, I( E- _( x#include <asm/mach-types.h>0 a/ Z6 h7 ~1 K
#include <asm/mach/arch.h>
- y; j2 t  E: B2 ?3 ]#include <mach/da8xx.h>
7 F& X, q. L% S  d+ j' s#include <mach/mux.h>; W- v( k9 r9 g% i9 W
6 `4 {+ v" C/ e7 L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& M( ^+ ^) _7 d4 M$ m4 c; S
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( a" C6 j9 ?( t# ~& |2 Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- K7 v8 ~7 e& b+ O4 J, S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' ^7 v& Q! E. l: p( c% a
/ K/ y& k$ \7 T7 h) q/* assign the tl som board LED-GPIOs*/
4 u9 [! G1 X& r1 a) Astatic const short da850_evm_tl_user_led_pins[] = {' y2 Z; A7 s4 Z, |3 t, B$ ], x
        /* These pins are definition at <mach/mux.h> file */
* }! M( C4 l3 G8 j: c5 L4 B7 S9 v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( S+ k; V# m' z9 D, s
        -1
3 m7 H) S: y, ~+ A# C& E};
  M, m8 J; P' U# T( g* G4 t7 h# o/ ~9 x" q- I, n, X0 @4 d; I# h+ I! w
static struct gpio_led da850_evm_tl_leds[] = {
# f1 D1 N6 t. K! Y" x        {
1 A  p. b7 O0 L( P: B; V+ C                .active_low = 0,' P# a7 _0 A3 G9 M
                .gpio = DA850_USER_LED0,
5 M. M+ S% J2 d3 m. Y                .name = "user_led0",
3 _& ~, W5 k, e# y; {                .default_trigger = "default-on",5 m4 {- r8 ^( A2 R
        },
  K8 c+ T7 `: K" @8 q+ ]        {
# T# E8 m- F3 Q$ {8 {                .active_low = 0,
- C2 Z. ?$ Y; b% w* L4 a3 k  _                .gpio = DA850_USER_LED1,
, I9 p, i2 e, b+ k2 @" n                .name = "user_led1",
  C& M1 o( t9 Z1 h" E                .default_trigger = "default-on",8 x$ D. a' M' [0 |4 z) G. x
        },
2 D( A  l- p) n& ~        {
; u" V6 v* f8 q8 O  U4 j( B8 v: f                .active_low = 0,
2 D/ G1 a; N1 Q1 Q                .gpio = DA850_USER_LED2,
# x; B6 ]8 F5 M* ]                .name = "user_led2",
0 @/ G" E1 c* o' Y                .default_trigger = "default-on",5 C0 r: l% W  \# @4 N4 X; A7 a; _
        },
# E+ B3 z9 ]$ `        {
9 |; X1 W& X4 m/ C# Q% a$ C                .active_low = 0,
4 D# z1 G" O. ^2 Y                .gpio = DA850_USER_LED3,- x, d3 a2 p6 }. ~9 D+ B6 ?
                .name = "user_led3",; I" c& D2 d  g# ?, D* ]
                .default_trigger = "default-on",
0 \7 o  ]( \- w/ ?3 N) V( Y3 J2 Q        },
- Q) D7 _, W1 o$ t$ _! u7 P( f};/ t. D  @* \8 z( d* y

5 G# l. Y# k: X( Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 h4 w' S  [) z" x" w6 N( |
        .leds = da850_evm_tl_leds,
. {5 U5 \9 e) v5 `$ y4 M8 y7 s0 \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- x- n/ a' I, J; e! S/ \};) X; W+ @3 V. S
9 a2 v1 T7 u" I) R" D
static void led_dev_release(struct device *dev); K" X' U$ P8 Z6 r& ?2 G( m
{6 P/ q5 }1 Z  n3 h+ p
};
6 u: @  |- ]3 M" `' I) W* C$ Z2 n. R) F/ |# o1 H
static struct platform_device da850_evm_tl_leds_device = {
' M5 Y8 v2 a$ b- e* b  A        .name                = "leds-gpio",
# g2 \) ~" v2 k: S( c. \        .id                = 1,
; Y6 x9 L+ _1 L* B6 ^/ b        .dev = {
0 ^' C, ]7 g6 b2 }# ]                .platform_data = &da850_evm_tl_leds_pdata,/ `3 _& e% H1 X, Q$ N
                .release = led_dev_release,% m1 N# {3 d2 Z9 h$ [3 F
        }0 F$ _1 d; {" f- k1 q& m
};# q& d  }) P, |6 `. v9 p$ i- O0 D) `$ d

0 R. R0 ^3 {3 v+ Y3 S& e2 i& Rstatic int __init led_platform_init(void)) ?5 V* N$ z- R. {9 ?+ g4 _. y2 T' |
{
, P+ f2 H3 U3 l  }: v" I        int ret;
4 P5 n0 U- [3 O+ _, p1 I* Z#if 06 p+ j# A; C: q; j) R7 D  c
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" [! y' S( O7 @7 {2 O
        if (ret)5 j9 l" w( ^5 L# ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% d7 ]3 l8 H0 h* Z                                "%d\n", ret);
, P+ Z4 c% \4 @, W1 _5 L% Z7 D. j8 P#endif
) h$ c' r3 \, J# w        ret = platform_device_register(&da850_evm_tl_leds_device);. E! \; z3 |2 M7 A& x( L1 k- M1 y1 A& t$ q
        if (ret)
, B8 E3 x9 I5 E$ Z                pr_warning("Could not register som GPIO expander LEDS");, [& _1 u% R- @
        else
6 ~7 ?- w3 y$ w) Z9 \: T8 y                printk(KERN_INFO "LED register sucessful!\n");7 J" Y1 L3 p" z6 U; `. A- p

8 y0 T) [* R) Z6 g5 V8 M        return ret;9 }7 e% ]: D3 [  J! _. ^- Y
}
: q% W. Q$ u+ {% }/ F) ]0 }6 ^  }9 V5 j
static void __exit led_platform_exit(void)4 R( B% d- n$ j3 q; L
{9 h/ e1 P8 ?, [
        platform_device_unregister(&da850_evm_tl_leds_device);
2 b9 H8 }9 N6 F' W4 Q: h
8 k: F* d" R" @        printk(KERN_INFO "LED unregister!\n");
* u. f5 A5 p" m5 H' K}
+ n% x0 }4 x1 k2 A' }0 f: F: f/ c
2 X2 J. s7 z9 {: x( \6 I9 n0 rmodule_init(led_platform_init);( `; ?& K! t9 x* i/ s
module_exit(led_platform_exit);
9 ?: s' j% M* w
7 _. V. Z  X6 IMODULE_DESCRIPTION("Led platform driver");$ m8 K# `/ w3 }7 W2 E- u! X% |
MODULE_AUTHOR("Tronlong");
  V- g2 }: a+ T$ u3 wMODULE_LICENSE("GPL");1 ^9 k1 b* e+ @" O& ^  Z" T
" g2 U' h5 i2 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 13:09 , Processed in 0.038205 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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