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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' a- ?' c  [0 M% A
#include <linux/init.h>9 s0 m; g' z& c/ ^* p% n
#include <linux/module.h>8 z6 |8 C% Z* n+ }
#include <linux/kernel.h>- d4 X9 C; E) S# @0 N0 V
#include <linux/types.h>
. w. E( F+ J% l' h4 B. q! O#include <linux/gpio.h>
6 g: Z5 S7 o; i#include <linux/leds.h>
, g3 d- O2 j* F; H5 H; ^#include <linux/platform_device.h>9 c! a' W" o4 E: O- W- t! A/ P

8 U) }6 n/ ~; h#include <asm/mach-types.h>0 D$ C1 C+ p1 G3 d6 \
#include <asm/mach/arch.h>
3 J3 e1 \- X4 ?$ k#include <mach/da8xx.h>; L1 @+ l+ G9 ?: `
#include <mach/mux.h>
" R2 k6 u2 C* t3 e6 k; T* r
5 ]5 o! r5 x; ]5 y1 c- J2 z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) A" z; H2 A9 p# F. o% `( c# M1 k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ V+ H' @7 f  l4 @# T* @0 j0 q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 }6 I8 n3 ^$ N, a0 E6 ]. h& L) U% }
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" q6 D$ `( _8 P; d5 Q, E
) }3 q  Z& z) `0 ?
/* assign the tl som board LED-GPIOs*/
6 \: {: h8 Y/ M1 z3 {static const short da850_evm_tl_user_led_pins[] = {: P. m' F- w3 f; R& Q
        /* These pins are definition at <mach/mux.h> file */' r# f; R4 c6 w: J( m  n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 j$ \4 B% e9 ~7 X+ k; a        -1
2 ^& E) E! }. G" t( k};
  g5 J. _! v/ D  `8 F- W
) N' Y; D4 i6 x. f+ S; Dstatic struct gpio_led da850_evm_tl_leds[] = {
3 x# q3 P/ w3 B' m6 j        {! }- h  U0 ~8 B; C+ X# j
                .active_low = 0,9 f' x) g4 P$ p; D
                .gpio = DA850_USER_LED0,
! U/ n3 h  a6 t0 @( ~% s' A1 f                .name = "user_led0",% r% ^- u0 g& t' t. o6 i
                .default_trigger = "default-on",' [* ?6 l3 d/ ^* M8 a
        },
+ {' U1 C0 \8 X: K        {
8 s# X0 m0 m7 _( c' g% x                .active_low = 0,* l/ y% E( a3 w& O( ?. J* l
                .gpio = DA850_USER_LED1,
$ p* a  R  k' P7 F* P4 C. `                .name = "user_led1",9 H$ M  `- k% c, J) o
                .default_trigger = "default-on",6 m. H/ H) B# F2 d1 Q
        },. z& W& ^& c$ W
        {
6 Z4 N' m! U; [5 J/ b& `# `9 z                .active_low = 0,1 x: K/ e( {! [  [$ t$ q) _
                .gpio = DA850_USER_LED2,
3 i0 F) c6 I: D8 Y1 ]7 a& J                .name = "user_led2",$ ~$ B1 s. Q, h9 p1 ^3 v
                .default_trigger = "default-on",
( {1 [0 S$ Y; b* [* S' j$ d! P        },
0 A) q9 }1 p! t        {9 A' L8 k) Y" `! [6 M
                .active_low = 0,: d0 e* y/ @' g
                .gpio = DA850_USER_LED3,
# |% g! N. ~- C6 K                .name = "user_led3",
+ e' B% |" w& Z' t                .default_trigger = "default-on",' Z5 a: \2 u  g' b0 y6 ^
        },
% T7 b8 |  z( S9 t, V7 `};0 D" J. m% d4 U  E/ N1 l
2 r  t/ ]. i  e' N8 p7 h6 y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 Z& A- [9 w+ ^! @% D        .leds = da850_evm_tl_leds,
# s% `& U# M4 l# ]) J0 k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) F' A% ^! @! \
};
! b( V0 c5 h3 |3 N: j6 ^  k- A8 Z  C# c% ?( N. }' N
static void led_dev_release(struct device *dev)2 s2 K9 g( y% r" q  b3 [( o+ [" v
{
5 }' E4 O, X. f+ y3 Q1 i7 b" `};" l% l% C7 L2 }$ Q' M8 {

8 r  w* v) F6 s/ H$ ~static struct platform_device da850_evm_tl_leds_device = {7 ?# K5 X, |0 }& h" H% B, h5 u& W
        .name                = "leds-gpio",: L$ a: U+ B  j& \
        .id                = 1,2 t: W- @0 y4 d
        .dev = {& w1 I5 r! T7 l0 K8 V0 f$ f
                .platform_data = &da850_evm_tl_leds_pdata,, ]: D& A' T2 S% t4 ]8 |8 X
                .release = led_dev_release,
' J. E, B- i2 z/ `0 w        }
7 Z# F* S  L! P( N};+ Z' P' g2 f) G  l4 C
/ H3 Z, c7 z0 E) o/ z2 ]
static int __init led_platform_init(void)
; }/ |; e6 F, [# R3 G{3 e3 C% q) G+ u' B- A) Q2 ^4 ]6 L
        int ret;/ y$ `3 S1 O" [1 o" p0 G$ c
#if 0
& c) @3 K- ^- Z( C6 l' m( n! g5 F! t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' ?4 K' @& W4 `) g; U( w, I        if (ret)* g  @% J, N  V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' Y; Y1 y0 o7 c% l9 z% b5 s
                                "%d\n", ret);
$ C0 k4 c+ p% z#endif$ X# m+ T/ v2 f9 B7 _! D9 q
        ret = platform_device_register(&da850_evm_tl_leds_device);3 Z: m! w5 [. z7 R
        if (ret)5 L8 N+ A% Z/ d0 K, K& W
                pr_warning("Could not register som GPIO expander LEDS");
! }; ?- N2 ]( K1 `0 d        else
4 E  a! T6 ~' O! c0 R0 E+ v. ^                printk(KERN_INFO "LED register sucessful!\n");
% C9 P4 D+ O' D. Y) v* i9 c, ~% Z2 k* r# ]4 E9 x, m4 }/ u! r
        return ret;' Y6 L. u* M2 Y# |) }/ f- t. _
}
* |9 o) {0 N+ D& x# _( B  L& B4 F; ^- H7 l$ u6 h8 p( D
static void __exit led_platform_exit(void)
/ K, i( w$ R8 G) V$ Q{/ [1 l+ a4 r$ e" D, x% V1 {6 K
        platform_device_unregister(&da850_evm_tl_leds_device);
( l# X: n6 l0 m0 u8 C) n3 [+ Z/ J! ^. K+ x8 \
        printk(KERN_INFO "LED unregister!\n");3 S; y# [$ ?! r
}& j1 Y5 z! j6 B$ L0 k3 c7 J

% b" b3 \" B0 x+ l9 O, vmodule_init(led_platform_init);
' D8 T! Q4 r. f% i  V2 ?  Pmodule_exit(led_platform_exit);
9 T7 ?+ r: w/ X! ~# u( k! Z0 N) F6 j, N! G# V/ \( E
MODULE_DESCRIPTION("Led platform driver");
7 t1 x0 e; x7 z& G. D; {9 eMODULE_AUTHOR("Tronlong");
: T2 s& S. O0 T# |/ tMODULE_LICENSE("GPL");+ K' h) Q' D- W1 J" @2 `" x# y3 O

! u! ^+ ^" F* z. }8 ^# ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 15:09 , Processed in 0.040004 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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