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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  ^; E9 Y  Q7 n- W
#include <linux/init.h>! P2 o+ j6 z3 _0 w& f
#include <linux/module.h>
0 S" q  n0 X" L) o#include <linux/kernel.h>
# _$ v/ V& B  g8 E#include <linux/types.h>+ v3 k6 J, S1 f
#include <linux/gpio.h>; k' s. b  e- d& m1 ~
#include <linux/leds.h>6 `- ~$ S1 {* z6 y! _( A+ }
#include <linux/platform_device.h>
( A. n2 t/ U% O! D. [% Q/ |0 @$ D. B( P5 w- r- {
#include <asm/mach-types.h>: z- i! V- Z+ ]9 G( G, ~
#include <asm/mach/arch.h>0 f+ u. ]" `0 Y: i5 j( Y0 s/ v
#include <mach/da8xx.h># }( z) N0 e. |  X
#include <mach/mux.h>' w) F9 Y( g3 i

4 A( L9 |; L+ |! `/ o. }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* w/ s; R% B. z* l  j$ f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# W1 h3 H  I& W. _4 M+ ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& P% Y! [( W/ p4 S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 h( F$ U/ i/ W5 X; ~! S3 }
. m$ W2 e2 y( t- F' M4 Z' R/* assign the tl som board LED-GPIOs*/
+ X2 d' D; e$ G6 Cstatic const short da850_evm_tl_user_led_pins[] = {& O: @( f) \$ k+ w( L) i
        /* These pins are definition at <mach/mux.h> file */9 b4 {: `8 Q' Z$ k/ S( }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- j) P8 A: ~: K3 B        -1
2 W$ f0 u+ G4 M: c' V};
8 F: h  [! R" z" ^
! I7 H! v: K( p- c. ?static struct gpio_led da850_evm_tl_leds[] = {
3 `0 H# v* \; m        {
+ r1 O3 N* U# F  R" U/ h. H                .active_low = 0,
( h) `3 H: S1 B8 p' h) N                .gpio = DA850_USER_LED0,6 q/ g- }  g  a
                .name = "user_led0",4 M7 c# u2 H. U8 G5 x+ w
                .default_trigger = "default-on",
# N+ h) e3 y; L) q        },' A, A* \: ^0 Z9 x! j: K; _
        {& n& H: Z- Q' N
                .active_low = 0,7 _$ d6 [! g( O) `, }- w
                .gpio = DA850_USER_LED1,
! \5 _- E  u! b) k2 L) |                .name = "user_led1",5 {3 @8 O9 X- e! X5 W% Q) B/ C6 m! |
                .default_trigger = "default-on",) B5 g: G' b' |8 z
        },2 Y! r8 r6 J; k: ^
        {& t  m$ ~7 ~: W6 Y5 D
                .active_low = 0,1 F3 s4 J4 z+ u; w% p9 O+ E; `
                .gpio = DA850_USER_LED2,
: f6 |6 @4 k2 u+ I0 b$ t$ I: l% Y                .name = "user_led2",) J. X- Y* [8 y3 h& W( q
                .default_trigger = "default-on",4 r  V2 R' @5 i' J2 j- _
        },
6 L/ M& v: ~9 I5 u/ @0 _        {( l; i( b, E& O+ B4 Q5 @0 a! Y
                .active_low = 0,
( x, e* L, q- F% A1 i) P2 ^. m& L2 M                .gpio = DA850_USER_LED3,
! `+ v) _0 I$ L/ f                .name = "user_led3",  [4 z' I: w* m
                .default_trigger = "default-on",
4 s7 m+ ]: n% j; k: a/ K4 o7 q        },
2 c3 T$ g2 u! z% V5 y3 P& |% q+ i};2 b3 t/ @1 p  O$ e  U

. q! `# D) k( [) m2 ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* v* V% }$ X& J- `" _: m        .leds = da850_evm_tl_leds,' c/ U' z+ x6 L4 W: Y. Z) \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, w- E/ T6 X$ ?
};  c  z1 q1 l6 p* ~$ L$ O2 H! Y
# D" l! }4 w0 _- h4 N2 J  y
static void led_dev_release(struct device *dev)
% v1 J' I+ o+ Z4 a, C) G{
% }; i0 e  a8 e};& Q" P' ?. G1 e* P% ]3 p8 S

* {0 U; C# b5 \6 Q7 \6 b% C- p* Fstatic struct platform_device da850_evm_tl_leds_device = {
: \' l5 \$ z' L. U  }9 D        .name                = "leds-gpio",
0 T" Q* k$ o" w9 G. @& @        .id                = 1,
3 V1 |8 ~! t  P        .dev = {, P. {0 S- F1 |' u, x- \6 B# \
                .platform_data = &da850_evm_tl_leds_pdata,* a3 F! c% B9 l" h7 G7 u1 |
                .release = led_dev_release,9 R& E0 t+ w, _2 M6 x
        }3 Z1 L- U5 l) S0 {  N# J0 \7 V
};* s  l  p9 E7 I

3 O7 `5 G) B9 astatic int __init led_platform_init(void); O& I. p( N$ T% k3 U
{% A% x% {% _8 c+ z7 _( V% ?- E
        int ret;0 }% T  K; ~& b8 g2 U, t. b  @% @
#if 0$ P  n) v9 x2 ]2 K
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* Y( n) j% |6 y6 p* g( k; i8 r8 E
        if (ret)' D; \8 {1 y3 [8 F9 L. h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ @9 G* E4 e9 N
                                "%d\n", ret);
4 ~0 u, B2 ]# w7 J# j% l/ a5 Y2 Z. ^#endif
* J% i9 D9 H% Q" D% a! Y/ E        ret = platform_device_register(&da850_evm_tl_leds_device);
, i3 Y; d9 O* `, k% \, M        if (ret)6 W3 ]7 C8 M3 _/ l8 S
                pr_warning("Could not register som GPIO expander LEDS");( u5 q4 z: Z  i+ e6 {7 |, J! ]
        else- C4 q  t3 ]8 v
                printk(KERN_INFO "LED register sucessful!\n");
/ O3 M1 p, o: [
  u: t/ Y+ l) X        return ret;
8 Z- K2 j$ ~7 e9 n+ W% p4 ?1 c1 n}6 K/ j* L; \0 g/ ?% e

9 i9 H( e% a" E# Lstatic void __exit led_platform_exit(void)+ z# }8 S8 }; l
{
' v2 D$ U  ^! X' R" R* W: Q        platform_device_unregister(&da850_evm_tl_leds_device);
1 i; P: i% k3 D3 y5 M% B* O0 v# e+ `! l% E6 y7 j6 p
        printk(KERN_INFO "LED unregister!\n");
. p- k, c% P& A' t2 Q}
! X! V  {0 ?- k; N0 ^3 _2 W
, Q9 k5 M5 j+ n5 Y, Q+ b. Ymodule_init(led_platform_init);' `- p2 F6 f  _# w
module_exit(led_platform_exit);
% @' R7 p; [# G1 ^2 m$ \! j
& ~6 q3 W: T  F) _. `; k+ gMODULE_DESCRIPTION("Led platform driver");
$ F2 _- o0 @+ a' qMODULE_AUTHOR("Tronlong");' A! j- q) A2 e
MODULE_LICENSE("GPL");
# ]; f: A) E" q  L
0 ~' r& @- {8 S$ R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 04:00 , Processed in 0.038826 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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