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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( ]" {' G1 j3 i#include <linux/init.h>
  p' l/ z/ U8 x0 G& y#include <linux/module.h>/ E! M# \; C' [7 r) u; P
#include <linux/kernel.h>7 X5 r' _& t) H* s% U9 V
#include <linux/types.h>; Y6 N) T( k4 f/ z5 k
#include <linux/gpio.h>
8 v: `  U8 `( x2 p#include <linux/leds.h>
" L9 F( c- T9 q) K# m0 w, P7 x#include <linux/platform_device.h># `8 {/ j5 g/ ]# |$ v0 C

" c% D4 a/ Y5 V2 {8 M#include <asm/mach-types.h>
( k, D7 f7 B6 c6 E! y/ h#include <asm/mach/arch.h>- a. u: w4 {: d: f- m% N! U$ d. P; r
#include <mach/da8xx.h>
( ~$ Q( t- r% R  h' g#include <mach/mux.h>
& `' x) ?6 z  d! M; D2 e
( `+ N0 Q" T1 Y) k/ v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 J4 k; s! b5 N' ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) P  l& T! s' X/ d& i* ]1 E8 P8 M1 v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ z1 r+ i, C2 z: s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, L1 \0 p& [% y1 f; z0 X7 V$ _
/* assign the tl som board LED-GPIOs*/0 \2 _4 D+ I5 S- u4 p/ [. [6 Q
static const short da850_evm_tl_user_led_pins[] = {
" v1 a5 S& ?, c        /* These pins are definition at <mach/mux.h> file */8 {1 t: l  \8 g1 i3 K+ [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  v6 P% C' t9 I9 \0 `: H8 j  J! A        -1
% \1 y% U7 F1 R/ ]2 e8 L7 g};- \* g, f' S- S1 a
1 ]0 M3 e# ~3 {4 D( Y, d
static struct gpio_led da850_evm_tl_leds[] = {6 z" t# `9 C; d0 t
        {
4 P$ R0 B/ ]9 p                .active_low = 0,9 q3 N1 F) t& _' {& G' b
                .gpio = DA850_USER_LED0,
* d/ I" g- @. {# W  m                .name = "user_led0",
  p. D' E7 g( M9 F0 J/ A4 J' G                .default_trigger = "default-on",
9 ?8 K7 W! k/ c6 W9 s, f        },
) o8 k% }& ^# v9 e8 i        {) T7 g( ]) y- C* T* F. x
                .active_low = 0,( A6 U1 ]0 v( n' d" o& b: R4 U
                .gpio = DA850_USER_LED1,
- i: |# l7 q. `0 z) G" o                .name = "user_led1",  v4 Z" X# l) Q3 L
                .default_trigger = "default-on",8 r4 m" ^4 H0 l+ r% j8 z
        },1 Q' e% ]! C9 o- ^7 d/ f
        {; `3 q1 p5 c( ~- U' u7 d6 W4 K; S  L, ~
                .active_low = 0,
/ d  `7 b' k9 L0 I) C                .gpio = DA850_USER_LED2,
6 c. `5 q9 r; ~/ r, K1 I                .name = "user_led2"," o  I5 G4 y8 D6 w4 B& _& w6 A) V
                .default_trigger = "default-on",
# G9 n9 j! a7 w) n& r8 }2 q        },5 d' U  B1 F( J* Z
        {
7 K6 l6 O- O& Z) U. \+ ]6 |                .active_low = 0,
% ]' B6 d: E* [& b  K) Q- v( _; a                .gpio = DA850_USER_LED3,
9 Y2 X" {+ Y: k( c                .name = "user_led3",
! e+ o/ U6 Q5 D, x! I& ]                .default_trigger = "default-on",  }# K9 I1 |) g) P
        },
3 w8 h% A/ j0 E# X' d9 c+ ^};
" l3 N0 g, e+ j& x$ P
$ E+ u4 Z% o6 z5 istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 ?$ p+ N. o$ R5 b' @1 _8 n* X
        .leds = da850_evm_tl_leds,9 I4 F' f6 C0 X7 k+ O% |# L9 V# d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 Y" n3 b) ~9 m( U$ _- J. e4 [
};
2 i* z% w1 i3 l& h$ Z$ D% {5 @' t% a9 T" K
static void led_dev_release(struct device *dev)' Y3 N8 o- {: F9 v/ Z% s9 A% m9 @
{' V4 I9 i3 o4 P# u8 q% n
};* u6 |  X! V8 O0 ]

* J4 z6 ]( L! a5 Z  |1 ^0 Q4 zstatic struct platform_device da850_evm_tl_leds_device = {2 c! c' h/ r* ~5 q
        .name                = "leds-gpio",
  |6 n4 h+ _8 R$ J9 M/ F        .id                = 1,
5 Z  x1 u0 ?, c! i; e8 p        .dev = {# F/ D$ l* l  A# ~6 Q4 Z5 _
                .platform_data = &da850_evm_tl_leds_pdata,, I  m9 Q2 l# S  {9 T
                .release = led_dev_release,
) {' y. O& c3 E& ^        }
* Y+ E8 }3 `& T( u6 }  G; d2 T5 t" {};
9 R9 P6 N6 r+ d; w. B
7 G3 r7 h' a! S4 k" n0 wstatic int __init led_platform_init(void)6 K9 L+ N( f7 v, x) `
{
. z4 N$ I8 y0 N6 [$ e        int ret;
) G5 _8 y) ^' K, l# n8 M3 K9 z* ^#if 0
7 w* d8 `7 G# T0 t- S        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" r9 }- [( a( r2 z        if (ret)
$ ^; P  W% w4 F7 j9 s' I0 G6 l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. F8 v+ b' A" {2 F* o+ {4 P; C5 x                                "%d\n", ret);
0 Z) o- ^% K$ p2 E: V* v" i#endif( R" |. U8 f  X8 e( a
        ret = platform_device_register(&da850_evm_tl_leds_device);
) u5 B$ K- K* s1 M        if (ret)
4 L8 F( R7 Q. F5 u, F. T2 }                pr_warning("Could not register som GPIO expander LEDS");1 L0 B6 W2 G- \! y) X0 H1 N
        else
7 s1 V6 E& O, H3 b                printk(KERN_INFO "LED register sucessful!\n");
$ n) c; Q) N0 j- Y+ H& Q: r7 d& O' y8 {# n( f' v5 `. d
        return ret;1 x. d* `* f; ^; I
}
" v) E% x& S/ r$ O( E
6 Q9 v# k' e  q& @static void __exit led_platform_exit(void)9 f' p1 |( K& f, U2 |  w
{
  ^0 g- v% Z* }5 _5 K. Y        platform_device_unregister(&da850_evm_tl_leds_device);& Z; l2 R" r4 R
: `( A! n  F$ |0 k% ~
        printk(KERN_INFO "LED unregister!\n");1 T6 u$ j- o& E5 s: f$ W. J
}
9 @( B- H* X. T) h' t1 j- W' \2 E
module_init(led_platform_init);
* X6 ?: D$ ^8 {/ j5 j4 rmodule_exit(led_platform_exit);6 N- b2 k' f9 K# \: {. l

! d* P0 S) h3 ]) M0 P; h( ?MODULE_DESCRIPTION("Led platform driver");% K; C# t7 v& M+ T) T
MODULE_AUTHOR("Tronlong");7 U0 {5 [) D& k; q+ p) x
MODULE_LICENSE("GPL");" b0 m" b: ^; H3 i# X7 b' j
! ?7 t' y. ^$ F- x- ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-6 01:26 , Processed in 0.042309 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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