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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 \8 M3 @- H. D- ^0 T* K- ^0 s" N% X
#include <linux/init.h>* @# T' B7 j- }- a7 P
#include <linux/module.h>, U# ]# P4 [" s- y
#include <linux/kernel.h>6 M8 z  z8 x! y8 Q+ g
#include <linux/types.h>' W2 }" _6 g( v9 @) D
#include <linux/gpio.h>
/ t: x1 c" ?/ ~+ ~' ]#include <linux/leds.h>
$ S; r; s; H5 B; e! }; {4 q#include <linux/platform_device.h>( A, n0 o' X$ m

% w; \6 s& Y' ]3 I1 K* l#include <asm/mach-types.h>
1 E/ g3 ?  `5 V- r- F  m2 V#include <asm/mach/arch.h>" M% U3 U8 {, [) o6 h1 i  r6 u3 o
#include <mach/da8xx.h>
0 ]: I  V1 b' ~3 Q) K#include <mach/mux.h>
9 P' [; ]3 `' F2 D8 J4 e2 H0 q7 W! @8 M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 s  F. P! B$ G- Z6 n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 V- }/ ~1 C0 D  e* `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); F6 O% j8 \* N' _. X! n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" a1 o, g, }! |4 h  a5 E: O) `7 ?, A3 g5 g) U& L
/* assign the tl som board LED-GPIOs*/0 {3 @9 v0 r# r0 G( y5 I6 N2 k
static const short da850_evm_tl_user_led_pins[] = {
& C; o; S8 |* K" H3 W% J        /* These pins are definition at <mach/mux.h> file */
0 q$ ?3 y5 m. n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& v) H3 n1 c! e        -1& n8 y  F1 l. ~
};2 k( X/ _( H0 V' n/ ?
/ \1 B9 G  j; U
static struct gpio_led da850_evm_tl_leds[] = {
4 A, ?9 v+ h0 v8 E        {6 C$ Q( V" ^# O0 B$ n) Z' f  Q
                .active_low = 0,- F+ G6 P+ ]! z& |; d8 M
                .gpio = DA850_USER_LED0,, b5 j; x2 h  L! D5 C- l
                .name = "user_led0",  C+ H9 H/ ], G7 C  y$ ?, m
                .default_trigger = "default-on",
  F# l$ ]$ [. x7 A9 c  T        },- K0 O7 h0 p* c3 l, D5 z' M
        {/ D, M4 d. j( W5 ^
                .active_low = 0," ?  B; N& T' `6 F$ c& r
                .gpio = DA850_USER_LED1,9 x+ Z: y8 h0 H8 F
                .name = "user_led1",, A  x5 o) H# p" n# _
                .default_trigger = "default-on",+ [1 p+ S, V7 R2 K4 w# W
        },, z# v& u0 h& Q! Y; Z2 J
        {
) J9 n8 d  J0 S  ~) B: F                .active_low = 0,) |& z6 A( }& a: `
                .gpio = DA850_USER_LED2,4 e- B  W1 F0 d, {* p  c0 A8 R9 A
                .name = "user_led2",8 N! o2 B9 W# _  {3 i7 p0 ?3 ?# T
                .default_trigger = "default-on",) k' Z4 v# o" |: V  l8 x# j9 z
        },$ E  F0 w3 ~4 z% j4 n. p) }5 J
        {- X' H# Y6 V5 t
                .active_low = 0,
5 n# @, i) V+ h# z  v- g' \                .gpio = DA850_USER_LED3,
! W! @9 z; p! ~) ~8 R6 D                .name = "user_led3",7 C* {+ M! `5 g0 w$ o/ e
                .default_trigger = "default-on",0 n6 `2 R. Y* c
        },/ H. T$ u! A' o; n' q6 i' U
};
1 u* P& y. \! ]1 D4 V# C
8 C/ D' x# s8 Y& L" ?: Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& @- Y, h! T9 _9 [  @3 d        .leds = da850_evm_tl_leds,
, r3 U4 j5 e# t9 V2 }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 \, _7 l0 [9 F/ o
};
& X  `; `/ N# }1 Q; j8 F
1 @; i  s0 ^/ V. X2 X1 ?static void led_dev_release(struct device *dev)
7 y, q# @/ D4 s# k) `{4 U* S' G: F/ ~* }. o3 |$ v, A& H
};: H6 U2 S) I/ n" G
  y8 M5 z" d4 O2 y6 x; q0 t" m1 C
static struct platform_device da850_evm_tl_leds_device = {
+ u3 \' N* w. e( O3 g- j+ b        .name                = "leds-gpio",1 o2 k( _0 ^5 |- r& [' Y# C& y
        .id                = 1,' j! W/ C7 t: k4 |: s# E
        .dev = {
6 q: h* e* W+ T' l& m6 Y                .platform_data = &da850_evm_tl_leds_pdata,0 P" b8 a7 f9 X* w# d5 F5 F0 E
                .release = led_dev_release,
( V( z% T, W2 z2 {        }, b& E/ _- z: L3 `- u9 ~
};
/ M& i# E( m* H' W" J
* ]6 a3 O  r! V* M6 g' Pstatic int __init led_platform_init(void)
& m- _$ V# D& O$ }4 d1 ?1 n{
) G5 e3 _% z. ^& o        int ret;
& ]% Q" r, f" d. X#if 0
- ^3 p- Z# d0 S" j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 A6 v: \6 A- E  e. S. z
        if (ret)
7 M7 N0 u9 Y3 |! K' A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ ^6 |) L: t0 f( ^' _+ U5 F& v
                                "%d\n", ret);; b8 S; {  S: T, K: b
#endif: @8 v% A; g- \' z$ k2 g# d- g/ K  a
        ret = platform_device_register(&da850_evm_tl_leds_device);
( \6 N+ j5 n8 ^3 c0 o& P        if (ret)1 B/ {; i8 [- h
                pr_warning("Could not register som GPIO expander LEDS");
4 O5 b; F# I; y2 \4 m        else
5 r3 g4 ?6 M3 u6 l                printk(KERN_INFO "LED register sucessful!\n");5 ~+ V& K3 H0 Z8 I# U$ R+ d/ y

5 ?5 f8 [: K  y: t4 r/ T, I- {9 o' f        return ret;
3 Q0 K/ K1 Z' W( W! d}; n  ^2 }) j5 ]# O; s4 F" i- z  y

2 _4 f0 [" R! [8 kstatic void __exit led_platform_exit(void)9 G, X0 I1 }+ \0 }& l
{: b5 |5 w7 G4 I( _3 k
        platform_device_unregister(&da850_evm_tl_leds_device);
  Z/ `1 o$ n# {% T) @# F& @/ T1 U- \( j" [7 i! U/ C
        printk(KERN_INFO "LED unregister!\n");
9 K  d( s) h6 z6 Y- H}
9 T3 I. K# s/ f7 j6 F2 x+ K- u; |
& V0 m" T3 j) b% r# h% rmodule_init(led_platform_init);
3 @/ ~' B3 m2 }: S, umodule_exit(led_platform_exit);
8 D- U9 O( v. W1 f$ w
% b- |* J# q3 N1 @MODULE_DESCRIPTION("Led platform driver");
+ f$ L/ e6 J% n# ~MODULE_AUTHOR("Tronlong");0 u9 a$ n6 @' N$ \2 l
MODULE_LICENSE("GPL");. k# Y: `6 d2 \/ F0 H/ P. K! p4 Q
9 F6 E) L- L# I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 02:23 , Processed in 0.039562 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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