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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ @1 h7 s- `. Y6 |7 M#include <linux/init.h>7 n% w% }% }6 U
#include <linux/module.h>0 m# `) i3 H. B6 y0 B
#include <linux/kernel.h>3 f/ Y. Z3 m( u! m- a
#include <linux/types.h>) w$ V: G. K/ P1 O5 g
#include <linux/gpio.h>
' U! I* e4 K3 }" L5 y" B' r( u#include <linux/leds.h>: i' W' j; J, e3 k9 r, K
#include <linux/platform_device.h>
; {  b7 p3 L* \# O9 _/ K8 |- a$ d" }- H  t3 \' [
#include <asm/mach-types.h>9 W' n; r" \; y% U
#include <asm/mach/arch.h>
* x( @' [# ~2 I  d  d1 y# B6 v. ~( @#include <mach/da8xx.h>
5 z: X6 a0 l; f) M#include <mach/mux.h>5 L$ M# }3 _0 Z0 @6 e' W4 w2 H' O

* W* o$ O5 v  J5 t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% r. ?- \2 }' m/ n  l% A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ R8 k5 T0 D3 c% `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), G5 ^* r0 E* H- w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 A) s7 U0 C" }2 U- W1 k! }
. x+ g* K6 I' P: t- L* z) o' ~/* assign the tl som board LED-GPIOs*/0 }! F9 A9 x6 V: W# n8 T
static const short da850_evm_tl_user_led_pins[] = {. I) p( r# W/ ^" Z
        /* These pins are definition at <mach/mux.h> file */
' B- `2 R% a4 V- c: n, }  u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 l8 L) m# i0 C" H! Z8 o9 K2 _        -1' e! \7 k/ ^$ t5 j' w5 Z9 s
};( G& d  p" X- S. t) x9 a: X$ w

$ N0 i0 z+ y+ y( ~& t& Bstatic struct gpio_led da850_evm_tl_leds[] = {( G; R! K) Q. M7 U' N- b
        {
% O: P4 _& {- T3 K3 @                .active_low = 0,+ P/ A) g2 T8 j: G  f
                .gpio = DA850_USER_LED0,* i1 _% [: V9 [) i- |* S% j
                .name = "user_led0",1 U6 Z7 n1 x4 V6 V9 N  S
                .default_trigger = "default-on",
( R7 z% O) v7 `$ ?- r1 E8 W  u        },
+ f! o" A6 ?( g( r* }        {2 L+ X- Z3 K9 Q* x7 P3 K9 k
                .active_low = 0,
: p) W5 M/ ?  {* [* {) b                .gpio = DA850_USER_LED1,5 p# `, L: q5 l4 o  Z+ n
                .name = "user_led1",
. X3 z; j" a% u8 F8 m/ e! {  Z2 [                .default_trigger = "default-on",
9 ^6 _% \( p& W: a2 B  ?        },& X4 I8 O% |& d! h' ^9 a" @
        {
2 D! \- R: Y7 Z+ x  n* r  W" S  }                .active_low = 0,& r  p4 O4 W5 R8 {1 h0 o
                .gpio = DA850_USER_LED2,9 K% o6 M2 P6 X, `& \
                .name = "user_led2",2 R7 ~8 e$ h& `' J  ~+ Y0 B
                .default_trigger = "default-on",
5 k: T' G; m* _+ \& u; D: O( t# E        },2 y( q) A' Z" s5 h2 d* {) N; Q+ R
        {2 I; L4 j! l# C+ L
                .active_low = 0,
4 X. P2 i( j. ~                .gpio = DA850_USER_LED3,2 Q6 s! ?5 j5 C3 k% G: P* t
                .name = "user_led3",8 }/ N6 v" m- m/ y( P; e3 R9 o
                .default_trigger = "default-on",
6 B# u+ ~" d8 @$ o4 }5 K        },
. B+ ?7 w) X1 k- Z};( T$ F% \$ D! a! E: Q1 m8 ?5 Q! G

) z* F0 Z) E% u$ hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ `/ b/ \  ]% ]: o
        .leds = da850_evm_tl_leds,3 Q" y3 U8 i! m4 x7 z& B/ ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* X$ m, A  @5 b6 T" J1 C3 x};$ `9 `$ q  o5 a$ [1 D: Q( t, Y" d

  x& b' @9 O: y( A  C, F- wstatic void led_dev_release(struct device *dev). L# ?1 H/ P* T+ W
{+ ~8 c2 N9 K. k3 T: j: c) S7 K
};& f; \' T6 ?' T& j4 G: K

+ f# x, N5 ~5 O) S3 O9 C" ^; }static struct platform_device da850_evm_tl_leds_device = {
3 M4 U) m, n( ?* N        .name                = "leds-gpio",$ A. B8 c: \2 n1 N  ^; ^
        .id                = 1,+ H9 H& ~( N( J+ N" u4 b
        .dev = {4 G2 |; B; e& _8 S  {2 ~( ~8 |
                .platform_data = &da850_evm_tl_leds_pdata,5 f: y+ L7 ~- I2 [- Z! p6 }% d3 E
                .release = led_dev_release,
. d  r: |; y; K& m2 P3 ^. }        }
8 m6 j) ~' D2 A. z0 ]! t};: M2 Q2 \1 J, P
6 ~. R; o" k# c! J
static int __init led_platform_init(void)# ?- w" G. v* F/ o% F1 D
{
7 C1 o0 w5 ]8 a+ J# G7 Q) ~        int ret;
, g* N$ q. }7 G3 l$ Z, ~1 v3 g4 L#if 0
5 M6 T" W; x/ f5 u+ S        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  d7 J! _5 f: K. {. ]9 y/ E3 \. \        if (ret)
/ S( z- ^# a* j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 r- b3 b8 N+ Z/ F) {+ _; g$ z
                                "%d\n", ret);& L$ f, n& `' U4 U) m
#endif) g% k6 O9 I9 q  N' |
        ret = platform_device_register(&da850_evm_tl_leds_device);/ d2 g6 O# n+ B6 _3 ]( L7 Z  Z
        if (ret)
6 x6 Y- d) D( o" b( F+ v) ]                pr_warning("Could not register som GPIO expander LEDS");
$ j: c" a/ O% m1 h        else$ ?+ X0 `! f& J- h9 ?4 g
                printk(KERN_INFO "LED register sucessful!\n");
. ^  u4 h0 ~% M$ s6 [$ V8 F; D% |5 F7 ~
        return ret;
% X% |$ b, Q, |& @  l& |}
: @& F" V7 {$ ^# C+ u
. `# T5 z7 V  m/ P& ?. p8 Istatic void __exit led_platform_exit(void)
6 i  W) D6 d5 I{9 J/ [8 t+ T: v4 M
        platform_device_unregister(&da850_evm_tl_leds_device);6 T! D# n: z8 {/ ^3 y# {; [

8 t! J- t' [9 C, o: i        printk(KERN_INFO "LED unregister!\n");
! {, j# P+ O3 a/ V6 H}0 K/ \$ v) o+ F+ ?; ?/ W
$ Z$ Q+ K2 A- l& i: ~
module_init(led_platform_init);
8 t: E" v% t6 B$ N5 Dmodule_exit(led_platform_exit);
3 O; G% m* L5 N! i, ^3 @% j- H# N
MODULE_DESCRIPTION("Led platform driver");
( d! @+ {8 h; U( z- v6 FMODULE_AUTHOR("Tronlong");0 {) Q, }: s" Y& X
MODULE_LICENSE("GPL");: i/ ]0 _9 C. u- l1 M$ T* G

6 [" {" U- R( ?, |: d# Y. `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 16:57 , Processed in 0.038091 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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