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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' T3 _2 z. h" P7 F#include <linux/init.h>
0 T$ n+ a  d9 q& I3 Z#include <linux/module.h>5 c* y# U- I  T1 [, Y' S
#include <linux/kernel.h>; s- U3 |5 K' \0 e/ z- z  {" a
#include <linux/types.h>
0 t: r* d2 p5 @  m; F#include <linux/gpio.h>; K# G+ p4 B8 f7 R$ c
#include <linux/leds.h>: a) @+ M5 l! k. A( X  {# o
#include <linux/platform_device.h>
4 ]9 B. S& O% F: v- V. N9 C, y# M9 Q% f) @4 y
#include <asm/mach-types.h>' v' V$ _+ `; [+ x7 L# F9 ^
#include <asm/mach/arch.h>+ _% t2 h) X2 r# \1 ]
#include <mach/da8xx.h>
" N3 C2 T5 j! {& s4 W#include <mach/mux.h>" i, S8 X  P' P, O  ?" P
0 H7 D/ i9 Y, p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 E: B. F* J, G6 h2 @4 F+ m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; w" t% [$ o9 k# G# |# b" X7 Y$ I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 A" q' x! b5 ]4 [! ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 e; ~. G+ _( x  @7 |" c/ W/ P0 _
7 Y8 i) n* H! U- z( {- e
/* assign the tl som board LED-GPIOs*/
" T  H6 N3 [3 Mstatic const short da850_evm_tl_user_led_pins[] = {
& @( @" C, q3 s& U1 F4 O3 X        /* These pins are definition at <mach/mux.h> file */" U' Z; G9 \1 E2 M; k0 g% q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 P$ m1 S6 L6 l) `
        -1
. x8 Y& k$ |2 y6 T};
: P. ]! E& G) n& A
/ [2 C# m- z& E8 S8 S0 [static struct gpio_led da850_evm_tl_leds[] = {
0 a: e+ J" F! ?  x' Y        {
9 B  f0 j& X/ H7 u% Z; J. \: w                .active_low = 0,/ e, I+ G( y6 d) P
                .gpio = DA850_USER_LED0,
0 m) K6 C: l  z3 N9 l                .name = "user_led0",
' x9 f6 E* M9 H# B- V7 ]& ~* J; ~                .default_trigger = "default-on",7 t5 u" u2 l2 e. M  d' L
        },
( b; G; l  a& h* G        {8 g7 k+ C0 f4 _* G
                .active_low = 0,, Z) U% T+ b+ G2 F: o  T
                .gpio = DA850_USER_LED1,9 Z; ~: L$ ?' u6 t# H! m/ u
                .name = "user_led1",
7 A5 h! Q! a& m- N/ y. I                .default_trigger = "default-on",
* i$ h0 @4 W/ @& U  W        },
8 y3 \: H. m4 A# p2 U% b7 O, p; h        {3 J' g( F3 {) ?* v/ ]
                .active_low = 0,
/ h, `9 H: q5 Z  @                .gpio = DA850_USER_LED2,9 o9 ]- i; \8 t
                .name = "user_led2",6 J+ [8 p' O) H1 E. J2 X7 ~. F0 V5 l3 [
                .default_trigger = "default-on",
  P8 G2 n5 N9 ~+ k        },5 p' [8 @/ ]/ n$ \! h* c
        {
4 j  a0 z" n4 Z  p1 x( X                .active_low = 0,1 r) N! o+ l& X. q+ k! _# S4 d
                .gpio = DA850_USER_LED3,
( c, ~+ A, C6 y                .name = "user_led3",! x# j  z, Y" R& a7 p
                .default_trigger = "default-on",
1 A5 g  l3 j5 g% P        },
/ h: A) H: o! P/ Z( g};; t% K5 V8 j5 F" {1 F. H! X
/ ?$ E: r( I) L3 t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- M( @- J6 [) K/ V! ~9 t6 u! j. ]
        .leds = da850_evm_tl_leds,
& j/ X( A  J* ]) L7 ~' j8 ~$ u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 z; D4 ?/ h/ J& c; P( I
};# Q5 {3 X. L% j# e8 Z9 n. t
( k/ L0 h+ T5 ^
static void led_dev_release(struct device *dev). ?  F. S6 K( f# k& Z/ g. H0 a
{
" }/ i3 d) ]' o; e};  \; j/ X! W$ n" z4 D
$ A- r4 n- I* k$ r  f: T' ^3 [8 Z
static struct platform_device da850_evm_tl_leds_device = {
4 s9 J# H% ]& k        .name                = "leds-gpio",+ o/ W, Q/ y7 o6 U* h
        .id                = 1,
& @+ p, t7 e8 f+ w        .dev = {+ }- p3 k) N6 }) I( c
                .platform_data = &da850_evm_tl_leds_pdata,2 r4 L) y- A% n6 ?- A
                .release = led_dev_release,
- m2 t3 K: l3 T2 V# F1 `$ I        }
" t% E9 O  Z* p};
8 J0 G& ~/ I, A" K* e& y' T! c& v) k2 Y# B; T
static int __init led_platform_init(void)
: f0 P& }7 [5 l0 R" W+ l+ a* v{! H, t* R- j! ]4 |3 [
        int ret;
. f0 V8 R( E& O4 S9 Q, i#if 0) K4 U2 i: Q5 ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' I4 Z6 ]9 U* l$ T- X3 w        if (ret)) v. W9 \- M4 O% ^/ X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 r5 p, Q( b0 ^
                                "%d\n", ret);' o  `( u1 G' L# Y7 N+ `. {
#endif
% F8 `9 J5 C: I1 d- w        ret = platform_device_register(&da850_evm_tl_leds_device);: R' G4 A3 m) D9 b# F9 N2 k
        if (ret)9 ^5 h0 w! s, f: b* Y' ^5 z
                pr_warning("Could not register som GPIO expander LEDS");
$ D( D; v  L& \/ E# D: v8 X% ~* O        else: h6 e8 N! j5 v* L+ ^
                printk(KERN_INFO "LED register sucessful!\n");( d* J: M, E4 K6 r! e  ]
% W% V2 F; g2 k+ N
        return ret;
; ]6 h! c, ?+ j% O. _5 _}
, u7 J5 }  i# B9 r) g/ X( i, ]2 i
1 L( k/ j9 E& @1 u7 }- l* Y$ j/ E; t9 Rstatic void __exit led_platform_exit(void). y: y8 B4 I! V- r. \. K# N; u
{
$ d3 U: y7 c7 @. \1 R        platform_device_unregister(&da850_evm_tl_leds_device);# X! J4 Y: P1 o  j9 K% y4 {
6 S; V5 H& o" X1 w
        printk(KERN_INFO "LED unregister!\n");
, _1 L' r* r) ^6 L$ h5 [}' @6 ]7 z9 N2 J+ [% @& Z$ F

+ H' z# U2 U' V$ Tmodule_init(led_platform_init);2 v! ?. P5 _- o* V" s* K$ M' G
module_exit(led_platform_exit);
# K$ K- {( f0 J" Z2 v0 T/ A, }# Q5 ~- z; l% s
MODULE_DESCRIPTION("Led platform driver");9 V  `+ ?: w! T* W2 g( b9 Y2 B9 ^
MODULE_AUTHOR("Tronlong");
5 n; P# T  c+ [% A$ t* }1 q# |MODULE_LICENSE("GPL");+ Q0 a/ q: L& U  e

- i) R2 O' }  n9 u8 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 21:04 , Processed in 0.047714 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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