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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. B* V0 p. X' K4 j#include <linux/init.h>3 O) f$ K/ M1 g$ ?
#include <linux/module.h>
4 x/ Z7 X: n# |5 X% J#include <linux/kernel.h>
1 }. M+ q9 b5 B# c9 e#include <linux/types.h>- J- h+ Z' ?1 o
#include <linux/gpio.h>3 `+ Y; i$ S. A0 y
#include <linux/leds.h>
7 }# X" b* T5 ^#include <linux/platform_device.h>
2 J( [' m; V1 `0 }, C0 v
9 F$ ~3 {0 V# @& i5 v8 a" b% B#include <asm/mach-types.h>
4 H2 i. v' X; t3 ?#include <asm/mach/arch.h>
6 ^, [# |$ ?9 r" h& K; ^# E. _#include <mach/da8xx.h>$ {6 [* [) \& G  Y  M% P/ K5 F
#include <mach/mux.h>
: q/ e; Y; c8 i
: t+ d# o; u1 S8 M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% f/ ^, @2 G' d9 h& u) ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 d7 Q. l7 ]0 G; ^4 e; X' G
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  H+ _" F) a, t6 F' g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 z3 `) P  P6 A6 y# h$ e
! _9 l1 Q, {( A0 N
/* assign the tl som board LED-GPIOs*/
  q2 h' z( C  x+ _1 {/ e. ~static const short da850_evm_tl_user_led_pins[] = {' y5 C% b. y6 V
        /* These pins are definition at <mach/mux.h> file */
2 b3 k: v4 [: B* v0 ^, j) ]  G" H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ c4 V8 y9 z% m  p% j2 L6 J- l- e
        -1
6 e2 p) @/ J; U9 S1 a' S+ F' A};5 x4 Q: h* l- Z6 W& s$ j

  A% B3 J  a4 `4 r4 P% Jstatic struct gpio_led da850_evm_tl_leds[] = {8 G' L% A8 n' a
        {
. c8 E: O2 K* ~$ S                .active_low = 0,3 V. t- A' U7 g2 e2 t
                .gpio = DA850_USER_LED0,$ u$ `( E; m6 Q, F; s2 {2 e) ~
                .name = "user_led0",
- c! @- |0 Z0 ~3 f                .default_trigger = "default-on",
& S5 L% `8 E) _$ T        },+ z) j! I) X) s% ]9 v6 I# C" m
        {" p7 X$ T3 y  I* F' A# A2 P5 e
                .active_low = 0,7 y. ?' Q& @4 ^/ S
                .gpio = DA850_USER_LED1,
: s% V! I+ I) X( e( i$ N% V6 t( w, d* ^                .name = "user_led1",
; Q+ U2 i3 K6 L9 `+ k7 O) n                .default_trigger = "default-on",. x, @2 h, g  x- C
        },. H1 y5 |! b. s6 r3 @% M
        {
! U+ ~, z. x% W                .active_low = 0,8 Q$ y7 c: N7 L/ E6 T
                .gpio = DA850_USER_LED2,. |& o: z& S4 e0 D9 D$ C1 N; T
                .name = "user_led2",1 K! G4 `7 Q, h" g1 J
                .default_trigger = "default-on",  V% e6 M0 h5 _: V
        },
# {: v0 T+ n9 o( b        {
" D. e8 M4 G  c. |# s3 y; L                .active_low = 0," v5 Z+ Z% |6 E$ _5 O, B
                .gpio = DA850_USER_LED3,
% |, f8 |: y( r2 Q% O$ J                .name = "user_led3",
; x/ C' W( Y/ j0 j6 v7 o                .default_trigger = "default-on",
- z- p% W& x$ l6 C7 F        },% j5 A- H0 _8 f0 J% b# G" \
};, @4 t" C! S0 \" a9 r& u6 F
+ @9 \7 [: ^' M9 {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  y( C/ G$ @$ V0 }) j
        .leds = da850_evm_tl_leds,
- t- G! z# G- A0 J) ~6 M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) p9 V9 x3 j5 I+ r" ]* b- X3 J" c. J
};
( u3 A. a! `: ~9 Q* M
8 F) H9 n4 ?% Jstatic void led_dev_release(struct device *dev)0 K3 N' I1 h0 K& m' a1 n" c3 o0 o
{
$ j/ i0 u, o; f9 M3 _7 ]& J. G7 f};1 D# t  {9 t! p4 e4 ~9 r3 b
7 l; `) k& Y5 }7 N; e$ b4 j1 G
static struct platform_device da850_evm_tl_leds_device = {
2 m  z5 t0 o% _        .name                = "leds-gpio",
! ~) m) r/ l" v. x9 {& o        .id                = 1,/ j2 C" l$ c0 L5 ~2 i4 Q
        .dev = {
# R3 j/ ~1 a6 Z, t                .platform_data = &da850_evm_tl_leds_pdata,5 v* Y& P. w2 k% t! u3 T" c
                .release = led_dev_release,
8 J% a/ }% G4 i7 ~        }
' \5 M' A, U; T7 Z4 l% Q};/ a. y& m) W3 B9 e4 s, A
* r! O' u. k" [
static int __init led_platform_init(void)
' K" ~) z% [0 ^# F# n; g; `{9 A3 w+ b5 T9 H
        int ret;6 g6 P4 |5 {4 M1 J) C* N/ z, G0 k4 v
#if 0: v0 m7 O3 z3 N8 D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; `' z. M9 O: W" w+ x2 o
        if (ret)
( l  _4 N' d  |. ^2 @1 r                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) l; S( Y9 U+ H2 a. q                                "%d\n", ret);
1 B) O4 v3 [* m* C# s#endif
: Q- y% b% ~5 F3 Y        ret = platform_device_register(&da850_evm_tl_leds_device);- a; @( n7 L# R$ d. V
        if (ret)
! z* P1 [/ ^( N                pr_warning("Could not register som GPIO expander LEDS");
, g. P; K; n" {2 w9 L; E        else
( n: H+ W/ K4 Z* L                printk(KERN_INFO "LED register sucessful!\n");
5 E& `7 U5 ~  Z1 a& ]4 y) `+ ^4 E* c4 i$ S. [8 X" |6 y' {
        return ret;
" J$ t' {# F9 o9 D( w}
5 M& w4 V  o1 U0 f/ U- p5 i' O& Z$ N7 T; z9 n6 a
static void __exit led_platform_exit(void)
0 F3 P) S3 h* U0 e; I7 W* o; j{1 F0 c- h2 x# x" r, @4 y* G
        platform_device_unregister(&da850_evm_tl_leds_device);" n( L* i8 Q- u9 |" C
% Q( f; \" ~  D1 ~+ x
        printk(KERN_INFO "LED unregister!\n");
- |, X" U4 ~0 F/ ]2 @% ~}
2 f1 G% _% x& S6 @
) w' \* Z0 w) b/ @1 g% U. ]module_init(led_platform_init);
1 ^5 p% x1 @7 P& k: o6 x9 Ymodule_exit(led_platform_exit);
! f' F' B2 M5 E8 _6 X* ^% O, H( r
MODULE_DESCRIPTION("Led platform driver");
  y) G' k. h: x! E- {, }/ ]3 M$ b' Q5 pMODULE_AUTHOR("Tronlong");  ^: ?) L  {6 m; V# D: H$ J! g
MODULE_LICENSE("GPL");
, @- H% {% d7 ~4 K
  D4 K. _* {$ `0 H3 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 10:56 , Processed in 0.037585 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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