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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ p1 D% u  L$ J
#include <linux/init.h>7 M8 ^9 d* Y1 L3 \
#include <linux/module.h>
& u/ H3 _+ V; c1 ~& p# j% s9 s#include <linux/kernel.h>- V* e) P  p' J+ t; }* N( h
#include <linux/types.h>% l/ V5 }' i7 o
#include <linux/gpio.h>
: m+ _  n; O6 L0 G, h1 I: }7 c#include <linux/leds.h>& r, k1 e# s6 N
#include <linux/platform_device.h>$ }( ~: }& ~$ v9 a7 ^' Q% y0 y

* `! F2 ]% o; e7 I4 z2 @#include <asm/mach-types.h>& w) w# @1 i, D2 S. i# L+ P- R* g
#include <asm/mach/arch.h>" e. `" E% c2 F! ]
#include <mach/da8xx.h>
, F2 N3 i( v, ^; g. k' P' j#include <mach/mux.h>( o% I+ z" S9 E7 x
; j! |2 w# O5 k4 W0 M# j% j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 Q* s( ?- _% t0 i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 u- h$ }. H3 F+ I' Y$ T  t
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 q3 w4 v. ]3 k6 ]1 q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 F6 R; `$ N4 C  U
% `* f9 W$ ?+ C0 J/* assign the tl som board LED-GPIOs*/4 g+ a  \2 J6 E; h3 m% a- d
static const short da850_evm_tl_user_led_pins[] = {- g! k( v- F3 B1 r. O( L" C( k& X
        /* These pins are definition at <mach/mux.h> file */' Q4 a9 w! `1 w: L. Z# \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, C7 H/ T( O% e* z        -1) f5 {) ^4 p+ z% ~) j9 _, I* ]
};
6 |+ Y; z# Z9 K# Q+ P7 j
' Y+ |1 Q7 |* u- q: A2 zstatic struct gpio_led da850_evm_tl_leds[] = {0 g, X0 u9 Y5 g* X2 J, M: B
        {; Y9 R/ s1 t5 Z( L* \
                .active_low = 0,! T5 A/ |" O1 a! \# V
                .gpio = DA850_USER_LED0,) U( u. E9 q! @4 F
                .name = "user_led0",! j6 Q$ W/ P5 F- K$ G& I5 m4 A
                .default_trigger = "default-on",
- ?5 K0 B! g' B# r        },
  ?: {* M! ?) a( W( V0 `        {
  P1 w. f( U. ?0 ~                .active_low = 0,7 O& ^' G5 E7 W2 N+ x" X: F
                .gpio = DA850_USER_LED1,0 Z* V) g# |+ @' e4 X$ E
                .name = "user_led1",
4 [( W4 Q/ p$ R% B/ m4 T0 P                .default_trigger = "default-on",+ s) t9 U5 j$ q: j
        },; _/ A& B, ]( @7 e' q" e6 j
        {% x" Y, V' c' E7 l: a# |
                .active_low = 0,- z& {. @% B# B" F
                .gpio = DA850_USER_LED2,; d" y; n. \% V) j6 }. ~
                .name = "user_led2",
, R0 Z# ^. A. e. W2 [) R                .default_trigger = "default-on",
$ V4 R  o2 k& z3 O5 w! _$ A        },, @! E3 j; g4 d6 G: v3 A
        {* i- U) M1 H  Z2 c" T7 p
                .active_low = 0,
1 v- _6 u/ Z: Y' I                .gpio = DA850_USER_LED3,
9 P: V. F* s. ^' X0 h                .name = "user_led3",
1 R2 F' S# ]* t' _                .default_trigger = "default-on",
* m- k) n: m# k7 ^        },
" T% f2 p8 d) ?};
  K. I; b, a9 f3 }9 ~- e) ?) z3 X+ u. Y4 S; _' e( c# a/ L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, M. ~2 X/ j& k- g" ~  a
        .leds = da850_evm_tl_leds,' I2 v3 i* J9 g) W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ s2 u7 S! u3 G  J/ t+ Q
};
0 V8 d8 R+ f3 [  R0 V! ~2 p0 i+ m0 V4 {' u! o
static void led_dev_release(struct device *dev)
2 f# k1 X; S8 e  D0 z$ s- b{9 a1 M# `3 \6 ~9 X2 i0 ^6 x: U
};( F1 B( c4 q- q4 E
7 n8 W% ^$ Q" d, A
static struct platform_device da850_evm_tl_leds_device = {+ h* l% c7 g2 m7 |3 I
        .name                = "leds-gpio"," ]! Z) p, ~( p, s
        .id                = 1,4 X( ^1 u( P  K; I- J, d
        .dev = {
' l- A6 [8 s9 j                .platform_data = &da850_evm_tl_leds_pdata,4 Y0 x- D& u! |( q5 @8 w
                .release = led_dev_release,( ~$ q3 Q9 M  n; b: O3 h
        }- C$ p" D+ @) D, ]# |$ ^9 p5 R
};' X6 {/ S+ E3 O* U! O
  r# e8 h1 L3 d' ?  q+ |
static int __init led_platform_init(void)4 D7 C! v* d" K$ k0 c4 @
{
( B- O- ^7 r9 u1 b        int ret;# Q9 }; t) g6 q, D1 q* n
#if 0, K9 M/ @6 Z9 V: d9 e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- _5 R, S& {% D' w        if (ret)
: o9 j( J7 q1 `( H* I; Q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 |+ S, b8 v& u9 O# K/ H, R1 |
                                "%d\n", ret);- m& `8 z1 D" ^5 ?# L" `
#endif
) r1 {1 k) ?2 e6 v        ret = platform_device_register(&da850_evm_tl_leds_device);
3 m7 l! c. g! x- H        if (ret)( o! e1 X+ l* n$ l
                pr_warning("Could not register som GPIO expander LEDS");
) h0 @* a4 @9 [6 s2 c' B        else
! B& \/ M7 c2 ]# Q                printk(KERN_INFO "LED register sucessful!\n");( x9 K& l. v/ D+ w' W6 E& M9 R

- W9 ], g$ D: t) G! I! e. ^& f        return ret;
  d- c) K% v, t* e, Z) f5 I}
- \6 {1 U3 U3 k8 b
1 y% V) m7 T4 N8 i5 qstatic void __exit led_platform_exit(void)  C2 q" J. w1 n# V# `  v0 V
{
$ H9 o5 d' o5 t$ }/ ]        platform_device_unregister(&da850_evm_tl_leds_device);  _. v! l& m; {" Q# {
& @! F2 i+ L- O( l+ }$ v! g! O
        printk(KERN_INFO "LED unregister!\n");
7 w% u/ d/ L" u: X1 Z6 n6 ~+ G}
" q! X- ]% V7 M$ G" s3 G. f! q( v2 P  A3 W* W9 {8 f, U
module_init(led_platform_init);
( a: A- l; }6 I6 P1 a( Qmodule_exit(led_platform_exit);
& Z# V' H! [3 Y; q2 h5 k0 N) D! R5 j; F
MODULE_DESCRIPTION("Led platform driver");
5 V* ^: U/ N9 f+ nMODULE_AUTHOR("Tronlong");4 l% f! a/ ^* c; F
MODULE_LICENSE("GPL");1 i! Q3 Q8 l9 P- J0 l3 E
3 R& Q* s3 r6 P& R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-22 02:03 , Processed in 0.038852 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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