程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& V  K+ ]/ w+ E3 W; m% F
#include <linux/init.h>
" ^' g* N$ G8 y#include <linux/module.h>" P" f) {% i, x! U! ^
#include <linux/kernel.h>
- w: _" t8 t/ A! d  x3 U! h/ A#include <linux/types.h># h( g! M6 n5 D, z- o/ s' M
#include <linux/gpio.h>
2 Z8 D% r( [" i( ?6 p  t5 N#include <linux/leds.h>
& L2 m; W2 E' a3 E2 F/ f#include <linux/platform_device.h>; D* E% @! M1 F- |, ?( N

5 T2 U+ K$ i* o  ^#include <asm/mach-types.h>
- e- H9 v( Q- r5 I#include <asm/mach/arch.h>
; x: B8 {- z$ z" _3 p" ~#include <mach/da8xx.h>8 Z1 h1 m4 s# u3 ]
#include <mach/mux.h>5 B# X# z$ y/ `$ q
/ I9 l9 @- X) Q4 s# C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% K( {/ \" z, h) i; |
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 A6 A6 U% ?$ X$ B: f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& i. u1 ]+ h5 D" K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. L( M9 C+ F- c# j& H
) f  Z4 t# G1 I4 w- A; v/* assign the tl som board LED-GPIOs*/" j4 F9 g. {  E4 M" [5 w5 A, B3 I
static const short da850_evm_tl_user_led_pins[] = {
6 k1 N- o9 J; `6 H0 M        /* These pins are definition at <mach/mux.h> file */! e( G# e, U& ~  A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 w+ G5 q; [  V. @/ c: ?: f
        -1! U, u& Y+ y+ r* B  ^
};
" T5 C& ~# k- ^5 {* m7 C) D( c# {8 U5 n# g/ F  x) F' y
static struct gpio_led da850_evm_tl_leds[] = {9 A5 t9 d% R2 c
        {' N. O7 Y' l% d( |* c- I1 R
                .active_low = 0,
, \0 d( O) Q1 \. A( s                .gpio = DA850_USER_LED0,% I8 v: ?" J  T8 q$ v/ a
                .name = "user_led0",
. y8 c% a0 U/ Y6 V                .default_trigger = "default-on",
* H1 e6 ~( r+ h8 ]- C+ A* a- H' z        },
# D$ L' J3 \  O  [- ]) o        {3 c$ {* k' m5 i
                .active_low = 0,. X* r( X& e# m) ]$ n
                .gpio = DA850_USER_LED1,- F- J7 `0 Y" l+ \
                .name = "user_led1",  `3 ~' N7 O# v8 w1 Y, t! F
                .default_trigger = "default-on",
& z, b( x- K3 F: Z% R        },
: K. y1 E5 L( m9 `. @) }! X        {
, E+ B& T: p+ d. }. i) f                .active_low = 0,
( ]$ P( [1 C/ `. G. x3 o: {, R4 h8 m                .gpio = DA850_USER_LED2,9 p; _( N; d" V3 g! r7 S0 ]
                .name = "user_led2",% f. F2 S; e! x. z2 T0 Q
                .default_trigger = "default-on",
8 R; F  W& t6 [/ M4 e4 }. r5 E+ u        },) w$ w) P9 \1 L* v/ i3 q. W  o) a
        {
7 D6 q  r7 v) A                .active_low = 0,9 \4 H2 o& J4 B! ~( ]. a; b
                .gpio = DA850_USER_LED3,
6 q3 B" O. I3 J, o! _4 X                .name = "user_led3",
0 l" ~8 l- \/ v% f, {& Q                .default_trigger = "default-on",. W9 ?0 ^& s0 O9 W6 H) _# q5 P
        },) O, D/ Y& s+ R2 w( |5 f
};4 T* U: l, u/ Q" L0 C

3 a2 l' A1 ]! S* {- n! Dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  A, M9 E; n. d        .leds = da850_evm_tl_leds,& U# `% _) D$ l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, x6 D* X9 T8 x5 J5 F2 ?/ f  R; U
};
$ U% w" h: O$ G9 k, P- X) K8 g# A: h# }, q# |
static void led_dev_release(struct device *dev)/ w% H& g$ f# _7 U6 S
{* G7 ^" r2 j7 U$ d% K6 O9 l
};+ t# Q. N$ R+ }) ^% x

3 m) I. O  o0 F* l2 t! Bstatic struct platform_device da850_evm_tl_leds_device = {( C( D% {- K2 l
        .name                = "leds-gpio",
8 c) a: R( I! s/ p# l        .id                = 1,
5 B- V; I$ }( x5 g% T/ q2 K/ {! [        .dev = {. P  Q: f1 T# Q3 h& J" R
                .platform_data = &da850_evm_tl_leds_pdata,
1 m& b; ^- v' s- }1 C& @4 E0 K                .release = led_dev_release,
2 `7 I: h/ d4 ?8 O) S* P+ u        }
! p% b% y3 \+ f0 I/ S};
! ~- Z. D# R; G; T& ?
6 f2 }0 V9 i( T! ~2 Gstatic int __init led_platform_init(void)
5 N% L0 v# H' P, e6 h' [- B$ V{: d( o. ^; t3 P3 m3 v4 o" {& I
        int ret;
% v% k" V- ?" C. `" C9 R. M% L3 t#if 08 |8 [! V- q6 v8 e6 J2 @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. E" _) f# |' k: W+ Y1 F; `9 m        if (ret)
; }7 f1 ~: g& V: b- o6 d7 M$ N( z3 r                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". O% i- M; ~6 L
                                "%d\n", ret);3 M& [* K6 P- e$ v& c  s0 O, b
#endif' J8 L9 O* \8 _
        ret = platform_device_register(&da850_evm_tl_leds_device);2 t* }3 h  ?4 x
        if (ret)
4 ]" {. Z; Q+ X$ @& }7 G4 Y$ _                pr_warning("Could not register som GPIO expander LEDS");
5 \/ A; M# \8 S# R' q$ M9 V        else+ o) O5 ~; a) v. e) d2 O$ B
                printk(KERN_INFO "LED register sucessful!\n");, m0 n* m* A+ Z: Q8 C/ b% d+ d

1 H1 j1 W2 c2 m8 T5 F; F        return ret;+ O/ r, k8 F6 d% T0 t2 ?' {
}- g, \& F6 v! r7 K1 p

5 n( V/ T. p6 P( ~9 C  mstatic void __exit led_platform_exit(void)
) N: w) J% ]/ j( S3 J{
6 Y  g3 E6 q- g* m6 q4 }& ~1 i        platform_device_unregister(&da850_evm_tl_leds_device);& h6 y  }. G5 C
2 x' D" B* e/ q. A
        printk(KERN_INFO "LED unregister!\n");
3 |6 ^: V7 a: M; t' x* `9 C" s}
+ D- |4 L1 q" N
( w3 r7 A. f+ G* ^module_init(led_platform_init);; T# e  ]5 u! u2 G
module_exit(led_platform_exit);& K, O! X4 R& r% z$ K0 o. O

$ j/ e$ L' G, K1 i$ y1 TMODULE_DESCRIPTION("Led platform driver");% n# ~7 [4 i' C/ x+ Y! v
MODULE_AUTHOR("Tronlong");. c, G  F; @% d8 e# R$ r+ N
MODULE_LICENSE("GPL");  Q/ P( d1 o8 T2 \3 H# h
: d, `; q7 c3 w: w! u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 23:50 , Processed in 0.037637 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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