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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ V) c# W% F, i. |  t& G#include <linux/init.h>; i9 L6 r9 a0 W
#include <linux/module.h>, S7 j9 v& c7 M4 q0 s% B
#include <linux/kernel.h>
, j$ A" g  k$ I7 h4 u; O+ ^# m1 ?" j6 `#include <linux/types.h>
; L6 m4 F2 C0 u  L/ o4 I$ h5 X#include <linux/gpio.h>1 B( J" {* ?, I7 t
#include <linux/leds.h>
3 A' r2 w* \! f1 h( p& J0 Q#include <linux/platform_device.h>
. L, {$ D. @! u# W5 S& A% h. Y0 t0 \' g( Y4 H
#include <asm/mach-types.h>
  k  d" f! i" h( V2 W9 b#include <asm/mach/arch.h>
; D6 X' x" Z% T5 q  g4 F4 v. g#include <mach/da8xx.h>+ `  {' R) p3 J$ d- d1 s
#include <mach/mux.h>
  u) d# n+ |& u+ Q) E7 O2 y: m0 u; b& q; _
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 P, C1 W, B) P9 B% D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. ^9 J& Q" b0 f7 b) @1 i#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); \$ m8 a8 F% l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 n* y, U4 q# o' g- f; P5 z% s: d  e5 w- F! _
/* assign the tl som board LED-GPIOs*/
: _% H& i& a0 B0 u1 w7 S) _static const short da850_evm_tl_user_led_pins[] = {$ @8 P- g5 J4 @+ w7 c/ }. \/ h
        /* These pins are definition at <mach/mux.h> file */0 D9 h  }7 B/ l2 ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ t" v$ J1 h" z" v3 Z+ h! d        -1
# h  R# J: W& B8 ~' ?& j4 p/ P! v};3 e7 h& v' `" Z' I( `8 g7 [
! p# T* T* S4 |
static struct gpio_led da850_evm_tl_leds[] = {
" f+ T9 W: M! Q& P) M  U# \        {
- M& R# s+ d9 D! Y% G5 w  t/ L$ n8 J                .active_low = 0,
1 c4 I+ F) V8 a                .gpio = DA850_USER_LED0,
' P, [$ v1 w; O$ z2 K                .name = "user_led0",
& S9 [0 |1 z# q/ U3 g: H, y                .default_trigger = "default-on",+ C+ T+ B" |) _+ B  `
        },
3 e: P. g) y' K3 P        {
* [1 ]' S9 n+ i  S                .active_low = 0,
2 n$ S4 T# o3 F8 v' P                .gpio = DA850_USER_LED1,
) q8 k0 Z$ z8 I8 L8 g( F                .name = "user_led1",$ A# I  [2 j3 v8 K5 j/ Q
                .default_trigger = "default-on",# I8 }- ^$ A: x2 c
        },
, L% K# c+ E1 c8 f( C1 A8 O        {' e$ s9 u2 }; O. a+ Y
                .active_low = 0,( g9 L! g. r: n: O& W! [; K
                .gpio = DA850_USER_LED2,
4 Y( o$ C+ E& r5 Q. J                .name = "user_led2",  c. ~! v% j* c% j' @( T: j0 \
                .default_trigger = "default-on",
( |5 v& w# f, @2 M        },
. ^" [6 ^) X' m' u0 v; c        {; z. H: o* ~% Q+ V8 `
                .active_low = 0,
0 k7 Y9 O) Q5 E$ e! f0 k                .gpio = DA850_USER_LED3,
, k& B- S3 j0 X9 u# Z# ?/ y                .name = "user_led3",
- j7 T2 ~0 p" H  E* m. b0 q                .default_trigger = "default-on",4 J- t+ ~# ^, h! b8 t: T# h) Z& l/ A
        },
. ~# Z6 N9 d+ s2 _+ b};
/ \. N6 w8 k" d( Q6 t! P
. g' T& r* _" k) q6 c6 k( istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 y; b- U- Y# s        .leds = da850_evm_tl_leds,
& `" Z3 f$ ^' I6 E0 |0 p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 ]! Q4 ~% w/ u3 V  e6 p- E( t
};
% q' Z+ s4 p7 K2 I2 J" l; x
1 g: I0 W1 N3 Dstatic void led_dev_release(struct device *dev)
$ j0 X7 a% B1 C0 ?{2 Z0 ~" }* ~/ u2 k
};, G) C+ \) T9 C: r0 g* a% v
& F2 |- C* V& l& a2 |4 l2 X# I; y7 O
static struct platform_device da850_evm_tl_leds_device = {
# L4 M% \, L7 s7 K, S        .name                = "leds-gpio",
8 i9 \8 B/ a9 K! S* R        .id                = 1,) v$ C4 L- E3 V
        .dev = {
) q- l* {. |& ^" S4 A& t                .platform_data = &da850_evm_tl_leds_pdata,& A. A1 M) s4 A4 W6 P" |' b
                .release = led_dev_release,( y# L4 l" Q/ J. |
        }
* h+ ~4 B/ g. c6 f4 @3 ~7 p};
9 Y( j& D; |4 g9 K8 M  L. D
' N, I5 k: l" ?0 Z1 C! mstatic int __init led_platform_init(void)
( H* m" h; F' ]{
) n8 `1 z! m- R% o- ^        int ret;
' ]2 q8 ]* p" V. ?; x#if 04 D$ T6 V$ g8 J4 n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 R$ {2 U# T( y' n
        if (ret)' v1 S- w3 X. o6 F- D8 R9 L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 ^4 @0 d( z! G7 c                                "%d\n", ret);
+ z1 ]$ ?; k4 r& S& Z#endif
0 T; q  W3 W* h8 V( _        ret = platform_device_register(&da850_evm_tl_leds_device);: F( W3 W/ }, z# Q1 k% Y1 r- X
        if (ret)0 l/ k. E. [% W: E& `5 v: T+ G
                pr_warning("Could not register som GPIO expander LEDS");
# \2 R1 [4 k$ o: d+ W5 H        else
- y' S1 u' ~4 D# U& [, p( }. t; x                printk(KERN_INFO "LED register sucessful!\n");
4 u8 Q0 F6 E! C' Q1 f/ _6 P
( g/ w$ k# |5 a  K4 z/ o        return ret;
- A. ?/ H) E; e8 c}" F4 u1 R$ E% ^- F+ j3 l& f4 X

' ?9 J3 n) n  c1 Z! K7 t7 ^static void __exit led_platform_exit(void)! O# s5 e6 O" l. u2 B: v8 \8 @
{, V: q' J- u/ {/ T8 g, C/ H( p
        platform_device_unregister(&da850_evm_tl_leds_device);
! M% M8 I' ~# ]! V2 m' m% z/ u) L8 _- z" G! v0 }* }: C
        printk(KERN_INFO "LED unregister!\n");
& V) X+ X! y4 S' @. n% B4 b! e}
4 |* \) }% a" @# Y3 D/ f: f' y) l- v( v' j
module_init(led_platform_init);
! k3 s: {' [! k0 G" Ymodule_exit(led_platform_exit);
; r; `9 E2 b% h$ C( b7 ~: R: ~. c, Z; K1 {: R
MODULE_DESCRIPTION("Led platform driver");  m2 c* N6 Y/ q2 u* e
MODULE_AUTHOR("Tronlong");
* f: G, v  {8 ^- i/ P- G  pMODULE_LICENSE("GPL");
  C$ t% S5 V' [5 o4 P0 y4 f; H" B
! D  C! c1 o6 q  N0 j% J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 13:32 , Processed in 0.036929 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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