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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& O2 |  v  p1 M. R/ E( v+ G
#include <linux/init.h>
+ n& R/ {4 a0 I#include <linux/module.h>! c3 n- W) I# r) n7 i' q
#include <linux/kernel.h>
) {" R9 M# f0 P0 S: o#include <linux/types.h>( d7 s( |: \' r. b! H
#include <linux/gpio.h>
* v: a* B9 A$ X. a2 p9 `6 v# k#include <linux/leds.h>
9 K0 w2 D1 W* o# `#include <linux/platform_device.h>7 D( l: [3 q1 Q- W! w3 `" |

% r. a8 A* J: Q0 E" X$ j. P#include <asm/mach-types.h>
* Z( B* e9 \8 f4 u#include <asm/mach/arch.h>3 T  q6 W  H: c) V) X+ H
#include <mach/da8xx.h>
  O4 K- x/ k- H# ?& s, `" `& @#include <mach/mux.h>* {( B; Q" h' T8 _7 H

8 l! V" S7 @0 X1 E5 z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ o- c. Y+ ]$ Z' \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 I2 J" {5 p; e* J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( N8 P, Q- K2 L7 y2 W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- [1 T# J5 l$ ?

5 X! u6 I% k+ `9 x/* assign the tl som board LED-GPIOs*// y2 e% X" U3 X4 i* A
static const short da850_evm_tl_user_led_pins[] = {
6 O; u( {2 y" R6 p        /* These pins are definition at <mach/mux.h> file */
- H) ^+ Z) }) n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 j) o) @& l+ x' h
        -1
' u; l$ [$ G) C. Q+ n3 k};/ J8 R' n0 b) E! Z7 F
& m+ x" n0 }% u" k% ?
static struct gpio_led da850_evm_tl_leds[] = {+ J5 O2 o5 q, t3 @6 J7 k0 }6 H
        {
- o; U: s; w) U' Q                .active_low = 0,2 p7 S2 H  X9 b' ?2 c% t, r
                .gpio = DA850_USER_LED0,
; A9 p  X, M6 j" j7 p5 J( W6 O                .name = "user_led0",
6 Q: F5 N$ {1 R! P% \3 X                .default_trigger = "default-on",
+ X* T7 o9 V4 t/ p) \, |        },
+ V6 C4 B9 Z0 ^9 P( C: o$ t. h* d        {6 k! Q. z/ B, Q! [6 o/ `  D0 s
                .active_low = 0,
! @1 c) t/ ~8 V  |0 b                .gpio = DA850_USER_LED1,5 q# C' G& S& r- n
                .name = "user_led1",
& g: M$ ~7 @6 a7 r! s% y                .default_trigger = "default-on",
0 r& V: d! H5 _8 T9 ~+ s, G        },
, h& P0 Z9 ?! R8 G# z5 {        {# M! ], r1 R3 s* ~
                .active_low = 0,  C. d1 X0 v4 L+ l/ Q  y( F
                .gpio = DA850_USER_LED2,4 n( G) b4 Z1 P  N; W# a
                .name = "user_led2",0 g+ d; P+ g& [  I  H
                .default_trigger = "default-on",
2 x. n" D4 D6 P/ O: f- R+ e: u        },+ Y, U9 F1 G* P0 C  f& k8 P7 x% ]
        {# [' \+ r) L5 g
                .active_low = 0,
5 d6 b* j! n, }3 Z0 q3 i                .gpio = DA850_USER_LED3,
/ l4 E1 V1 [- q7 `% B% a2 R                .name = "user_led3",* {- |7 J! w) h& H' R5 B" D
                .default_trigger = "default-on",
' L! Q4 E1 B5 v  k! Z7 b        },
7 s* g2 V, ?- ]; [5 R};
) k  w; G+ r8 N$ b1 b5 h1 k/ [7 }& X
9 l2 F! V% R! _# ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. `, v& k* Z2 d1 y" E% c
        .leds = da850_evm_tl_leds,
* K1 [3 z) v! m        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ j( F) n3 E% \8 X+ N};) k) i8 P7 }% @# y

* O3 x% V( r  k" @# I% Qstatic void led_dev_release(struct device *dev)- o8 j- _2 C/ C9 L0 @/ j
{
9 L0 G. A, S& n- j9 u};
  _- d2 |# ]4 k6 E- J% s2 k& z( R; u' T- b0 O: N3 H0 k) z, K
static struct platform_device da850_evm_tl_leds_device = {
3 X9 s) v) L: A5 z" R: d        .name                = "leds-gpio",
, V/ z; ~9 R3 N        .id                = 1,
8 Q! E, o/ t3 r) _8 i        .dev = {
) z& w5 @' U( [                .platform_data = &da850_evm_tl_leds_pdata,
  C3 f9 C$ p  `5 S, L                .release = led_dev_release,
' @( f  b9 l1 F- E7 d9 I        }2 f) f! E6 T+ D
};. a; X. r0 z/ r- b& M

7 L: [+ f7 Y5 S8 U  istatic int __init led_platform_init(void)
+ m* y1 ~2 b, [! j' j{" Z) w4 E# P* Y, Y
        int ret;/ w9 a: M4 ?% }
#if 03 Z  `  k9 D% N# k$ R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: s. R( I* R, q- V% P$ y7 O
        if (ret)
) V  A9 i- N) q' M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% o5 _9 S" K+ r( t3 s1 E! ]! B6 }5 }                                "%d\n", ret);& e# D6 f* f) f' z  u+ x6 s
#endif7 S- N, K/ ~/ R, [+ f
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 H) H8 w6 M2 J& f- l- g        if (ret)
. b  D5 @- n! R) n4 K. _* S; L                pr_warning("Could not register som GPIO expander LEDS");
! j& W" i+ W3 b7 ?        else
7 z. \- y: G( z                printk(KERN_INFO "LED register sucessful!\n");' d# I* A7 v2 }! b0 e- u

0 q) a# o  \' x        return ret;
0 ]/ j1 H: I" G  Z7 [}
/ {8 e1 N! O# s2 N% x' J& Q; i; c4 `, g6 E" h
static void __exit led_platform_exit(void)% p# s" H; u# Z% ?2 a
{# Q2 Y! L7 o9 y
        platform_device_unregister(&da850_evm_tl_leds_device);2 n2 J+ C8 M* I# S5 o
) L* h8 v" V9 B0 Y3 }. u3 O
        printk(KERN_INFO "LED unregister!\n");
  e4 H3 R) S4 o/ U: m}
, w/ k; e6 q% {! c+ l" s& u) @7 K7 V6 `
module_init(led_platform_init);9 {. z0 ], a* M8 a3 N; z
module_exit(led_platform_exit);, X9 d) h) Q7 I" J
+ G$ B0 T  l6 n. E) K
MODULE_DESCRIPTION("Led platform driver");  k& V6 \" O0 g4 i9 k8 l5 @
MODULE_AUTHOR("Tronlong");
# |1 [9 j2 S$ a7 m  {8 |+ F4 QMODULE_LICENSE("GPL");
8 p% H6 k0 p6 y% E6 n
  o& ^- B/ h# S8 Q' o# d1 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 09:05 , Processed in 0.044746 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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