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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* B1 E" r* p1 b4 _& U8 f( i+ I, V#include <linux/init.h>% _% L4 V7 ]4 k/ t) U4 n
#include <linux/module.h>
- G  D4 f, }  b8 D4 S+ w& x#include <linux/kernel.h>8 o! N# R9 @8 w) s8 S
#include <linux/types.h>
6 S% ]3 K, O3 O- Y1 A3 z8 L#include <linux/gpio.h>+ }! d; s# U+ [% W. `! u' _8 b' H- S
#include <linux/leds.h>, v( D+ o. Q6 y% Q1 k& m4 M
#include <linux/platform_device.h>9 a. B! o* M# W5 _) a5 x$ g' l6 G; \

/ B* {3 s& z8 N0 e* e; P#include <asm/mach-types.h>
* U' B: f, H/ G#include <asm/mach/arch.h>
5 i$ v: P# \( g# R8 c8 \& a#include <mach/da8xx.h>4 Z2 X8 Y0 X: a9 Z/ a7 I
#include <mach/mux.h>
9 E' T+ l3 K* a- }" l- B
& B5 \% @7 l5 d. P$ c8 ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* c! _' u* g& o! [/ [# T/ q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 o6 N, v1 O) k& T. p; B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) R8 }+ d9 `- n- K& G
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% V* r- Q2 ~$ S5 w! h
6 v$ F6 U8 X/ `. X" D
/* assign the tl som board LED-GPIOs*/' d% Q% P2 U& V$ W4 s! C
static const short da850_evm_tl_user_led_pins[] = {3 y: l  \! ]6 W) }3 M+ C6 m& O
        /* These pins are definition at <mach/mux.h> file */7 r8 D( u  q, c3 o" c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" J$ _! Z( S5 Z4 R        -1
' s. n( M( }# v};% N# H% j& [- `9 H# R. }, L( k
) ?. G* O, D" a. t; W  X
static struct gpio_led da850_evm_tl_leds[] = {
, X0 g' b7 v( ^" {& r        {- ^  E$ ]! t& C$ W/ }) v$ v' e' f1 {
                .active_low = 0,6 I5 l$ b# @5 \% O/ K/ s
                .gpio = DA850_USER_LED0,
3 y6 U8 V( K* B' R$ V8 _8 m; }                .name = "user_led0",8 P( H3 ~$ M# n6 k9 r
                .default_trigger = "default-on",
4 K$ H+ V/ B: Y2 y2 p8 [        },' \! M! ?) J( I4 `
        {$ ]- \" L) R- \. G+ e/ l
                .active_low = 0,
! b: K$ h5 Y" }# r/ k5 W                .gpio = DA850_USER_LED1,
) u9 c( p" Q1 e7 N( Q                .name = "user_led1",
6 u. n' d4 \! o0 a( ~                .default_trigger = "default-on",
$ h1 b" N  n0 l+ K0 r: k; c5 F+ K        },
2 [* Z# v/ ~/ z3 l        {) n* V7 ~+ |: y# i8 |  l
                .active_low = 0,7 s; g( q5 x( [- S
                .gpio = DA850_USER_LED2,8 Y, [: o9 i- L. t( C. R0 E
                .name = "user_led2",
4 F$ o6 N; v2 [. P# X                .default_trigger = "default-on",
# m; X7 `/ _* \& b6 s        },1 J8 Y- t. n# n. W5 z
        {9 z, r8 x  P5 k* H
                .active_low = 0,2 N: n/ }/ ]9 |' G  k0 F
                .gpio = DA850_USER_LED3,
1 o0 C% x" M! Z7 [7 o% p9 s" V                .name = "user_led3",) G/ M2 |8 h' Q, h
                .default_trigger = "default-on",
* o4 L% a  V) G/ W. D        },
1 Y. N7 A1 g8 @3 o! P};3 D9 V6 I8 c( h2 Z) R. E2 D
8 g7 c  }: o) R6 y* B& d" h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ e: r$ o, P$ i: V6 Z& _1 w        .leds = da850_evm_tl_leds,# L7 k$ B! L% q$ x3 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' O: S7 w7 S$ `
};* I# s- `" r8 F) i6 P
* N6 z0 |9 u, o; x
static void led_dev_release(struct device *dev)2 ^/ b( p" S8 O  m4 ]& }
{
5 b- L( ^0 I7 k# T};, ]+ f( v! Y/ y5 F" U$ ~7 W% c0 p
$ A( n% F/ D: J' f
static struct platform_device da850_evm_tl_leds_device = {
9 P3 P$ Z5 X4 ]/ m8 f        .name                = "leds-gpio",
- ]  M9 C  [# y" a: q% V        .id                = 1,7 |5 x# B8 @- ]" k. c8 O' u5 o/ Q  o
        .dev = {3 b* H3 U, l4 P3 f" F7 T! n+ a3 L
                .platform_data = &da850_evm_tl_leds_pdata,# x! S$ m$ _/ L2 t5 X# u6 K- v
                .release = led_dev_release,
2 c/ [4 w% j( V# D, G7 G+ M. [        }
' P- I1 N) ]6 R2 e* ]1 \1 E};- ^" p4 U( d# z4 U5 a
4 V" e; a9 Q  C( X
static int __init led_platform_init(void)3 v- J" @: w  I( f
{2 J5 d4 G; A. ~  s& Q& _
        int ret;
) X4 Q0 k+ v2 k: \( ]#if 0
/ J4 m: g& Q+ ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ e; a* k2 V/ @        if (ret)
7 s* b8 Y) \, R; i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: {: _- C3 M! m( S4 o; i4 c9 b                                "%d\n", ret);
3 x1 E, ]! N7 Z% P( ]  o#endif
; i) r7 b* D: E        ret = platform_device_register(&da850_evm_tl_leds_device);
7 d* f* [  ]; \# L        if (ret)3 K! j* a4 |" W8 f
                pr_warning("Could not register som GPIO expander LEDS");
! \0 x" p: g5 {0 e3 ?3 e        else- E3 [: |  M7 x
                printk(KERN_INFO "LED register sucessful!\n");1 z+ m5 l! f; Z, A7 R

1 y4 a1 k" D! v! X7 T- r! z        return ret;
: F( B) F# r% h}
1 }# A: D( R- o- g# y
3 b+ t5 O" r+ H7 u1 n8 Y0 lstatic void __exit led_platform_exit(void)
' A" i3 Z) K3 [7 I8 M8 Z% t, u{
' m# w. j8 J& R: S        platform_device_unregister(&da850_evm_tl_leds_device);
7 C4 l/ m3 B2 E" B9 w+ Y0 N
7 ]* d& O) G, B0 y  k+ _        printk(KERN_INFO "LED unregister!\n");* b# k, s! l) z; X8 O
}. m2 T" P6 ]; {+ G% L' t5 L7 a

$ x2 c# y, h6 m! V0 d9 q, }+ q. @module_init(led_platform_init);8 s- ~9 Q& j( K1 D
module_exit(led_platform_exit);
8 q# T+ l, B/ b2 g* n  ^1 D- M' j8 R: G. `; o
MODULE_DESCRIPTION("Led platform driver");
1 U) }1 T0 g- s$ P% b/ [MODULE_AUTHOR("Tronlong");
2 w4 c; n, A$ D) m% EMODULE_LICENSE("GPL");, v4 \& U% u$ L9 W: j8 U

, y0 r! P  O, t8 `4 ^" _( @) P9 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 23:02 , Processed in 0.040537 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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