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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' u* q3 M% E; a% ?  z
#include <linux/init.h>
/ }+ S' c9 b: _; a$ w/ ^#include <linux/module.h>
. ^! t1 v& l  y# M$ s4 }. r#include <linux/kernel.h>7 O3 q- l) x- h3 B
#include <linux/types.h>2 M8 R+ T' T& c( M( W8 v
#include <linux/gpio.h>1 |! X+ M: M! u  K# u
#include <linux/leds.h>
/ x" o$ N) p, D8 v! I#include <linux/platform_device.h>! G+ ~2 ~# i$ I. R

  e% f% X0 d& U, q: M#include <asm/mach-types.h>
' Q# F; U( g8 o. q#include <asm/mach/arch.h>* _7 c) ]. \7 X& y  n
#include <mach/da8xx.h>
* f# j9 M: A7 ^#include <mach/mux.h>
4 Q& L7 j5 A* e* M& ^! m2 j8 J7 w" B: t4 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( d6 o) d* @( X- ^  L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 u, e. S" i- y/ i, ~2 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; N3 k3 i! T: o) w3 z9 @: R#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 a# t" o- V7 e) _6 B5 x, O0 z5 }! P

( E( i" z/ [% o2 s2 p( `/ N/* assign the tl som board LED-GPIOs*/
6 P& ]( M3 K9 _6 {6 f" c  {3 Istatic const short da850_evm_tl_user_led_pins[] = {
. H. T; d5 y2 }        /* These pins are definition at <mach/mux.h> file */
5 P& T4 ^* I) V# y; m$ z* B, r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  E& n9 K4 m/ U# v$ ~9 ^; M: g
        -17 a. O$ M" w1 T) k* z* u- f5 O
};
3 a4 D( ~+ @/ a  z2 U6 r- U
7 Q9 R2 T6 W6 T- |; T3 v" Pstatic struct gpio_led da850_evm_tl_leds[] = {
" v7 K5 M3 G" y# ~: `, H  Z, m+ v6 K+ ^        {; W* n0 u5 i  j. r7 x
                .active_low = 0,
* }; P, [- A# n9 G4 x4 T8 D                .gpio = DA850_USER_LED0,$ I: ]( m; T/ g( {% b5 ~( u2 p
                .name = "user_led0",1 `" I: r5 X+ Z9 D$ K: ?
                .default_trigger = "default-on",
2 M, R6 ?; |$ ~, f        },
$ q" R* c' B' y6 K5 ~" M$ d        {
) T/ h- F) L) p% o3 n. K                .active_low = 0,
, W; G% z1 [% S9 J                .gpio = DA850_USER_LED1,8 A' j# b8 B4 S3 V  n7 Z
                .name = "user_led1",
3 X+ F( U' M  H0 ~! ]                .default_trigger = "default-on",! [2 I; a% _9 d6 N& {
        },# s5 R  n/ @$ c, \$ e
        {) e4 {2 X6 ^3 f0 L" P& W
                .active_low = 0,
/ u$ P6 U1 p7 G2 ?4 @: h4 \: E                .gpio = DA850_USER_LED2,; m! }; c8 m. ]9 Q! n5 m
                .name = "user_led2",
) a! F  g$ h/ m, d                .default_trigger = "default-on",
) e. S8 R* n& E8 j. M        },
0 c( f  u. O: q        {
7 T7 n1 O6 G5 R) m" c5 I4 ?6 C; j                .active_low = 0,% y# O0 @/ T1 n8 `2 U, ^1 @
                .gpio = DA850_USER_LED3,
8 ^  Z; L4 t) Z& u8 e                .name = "user_led3",5 o1 C2 L* H. o6 j
                .default_trigger = "default-on",. B" u) s! y8 z! m: ]
        },
6 {+ l0 x8 k; X3 H0 w; K};
, I. J0 s4 c! W% }5 t# g0 t
0 Z1 [$ ?& x* Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- K# J( U! z' x  @  d$ X) X        .leds = da850_evm_tl_leds,) I* W9 g# w* G  W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 n) q- I* x& Q2 c
};
  f. P6 w5 f4 k, I3 w
7 P5 H. A+ r3 P0 G6 Cstatic void led_dev_release(struct device *dev)
* a9 x) q5 Q; L: I2 M3 c; p{
5 P6 P2 k4 E- K; @1 {};
1 X- @5 \8 k1 Q' K. }6 ]% k' Z- v
static struct platform_device da850_evm_tl_leds_device = {" n! p: ^/ x' P& p. ~2 E- U) R
        .name                = "leds-gpio",
4 \5 x+ f; G( n9 z) G% Q        .id                = 1,: v: ^; M0 E" E/ h
        .dev = {- X- v8 a% U+ Y; c5 H# j  ~2 }9 H
                .platform_data = &da850_evm_tl_leds_pdata,
2 p; v- R' e: y8 |; A                .release = led_dev_release,! I( L8 z6 `$ X- ?' s. ?& S4 L0 u
        }
- N# k5 `# X2 _1 U7 B. ~, G};9 x. B' a* a% ]5 U

" h+ i: V/ g& [/ q0 _static int __init led_platform_init(void)1 H0 V: R6 F9 z' |; s9 P( E& F
{# x4 V! i7 d* `4 N# {; H4 v
        int ret;
/ F5 J6 E. ~# `2 Q3 q# N; J#if 0
7 i8 g4 [7 g. {5 X! U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. |; C. W/ N" d. a( @        if (ret)1 U' O6 e; q4 ?5 [8 J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": _9 W/ h" g- W5 I0 v
                                "%d\n", ret);
4 L: c1 n0 J5 `8 t' r. F#endif) c. n+ O8 e: E6 G9 N1 X9 N
        ret = platform_device_register(&da850_evm_tl_leds_device);6 C4 ?+ j4 D+ V3 c8 T
        if (ret)& g" J; P3 @: T; D+ b" I9 Q* n
                pr_warning("Could not register som GPIO expander LEDS");/ B# n* J/ @; E) e
        else
6 Q; a4 E' R7 B" j. x+ ]" ?                printk(KERN_INFO "LED register sucessful!\n");
7 \: M: o: a$ e1 ]3 j9 Z
, }; f( w( i; n) B/ Y6 m, _& y        return ret;
# F$ B7 x% ]; A9 f  |}
4 I2 V/ d# v6 ~! A" A/ U8 s3 j! z) @- S% X5 {3 C
static void __exit led_platform_exit(void)+ `+ v+ `. D1 @+ ~
{
8 }; P6 t) h  Y$ T$ o  f2 F        platform_device_unregister(&da850_evm_tl_leds_device);
( |7 w" ^5 w7 B2 ]( j/ K. o4 B% i, C3 w! ?/ M* D
        printk(KERN_INFO "LED unregister!\n");
( N. H: n3 Y3 D# V& ?9 c9 J3 x  q  d5 y}) @# w  `  h$ u0 U' ^/ y
/ x: Q# P# t& X; E) N3 Z% W
module_init(led_platform_init);
8 R% s" g: y9 I2 |* {module_exit(led_platform_exit);$ j7 E' D$ A& ?
3 A# C* H! ]" m" k4 ^5 B% @
MODULE_DESCRIPTION("Led platform driver");  g- @/ [; i8 K& k$ y( L( c/ B
MODULE_AUTHOR("Tronlong");
/ g2 Y2 E7 [- L* r* h) qMODULE_LICENSE("GPL");; |, T# y- t4 z& v( \! g9 o2 H0 I1 z

4 {% P; z9 e% z& @+ V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-18 22:56 , Processed in 0.040193 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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