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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 \9 |& o1 d, I" Q$ G6 {$ G
#include <linux/init.h>: p5 ^( U4 W1 h$ g. @& g0 ?
#include <linux/module.h>  z! w- z" Y% O& r6 Z5 z
#include <linux/kernel.h>
- h1 [2 l- w/ A; Q/ @$ U#include <linux/types.h>' j  ?5 S, V3 Q5 A. k8 X
#include <linux/gpio.h>3 p1 \* `9 a5 ~8 K: B! m
#include <linux/leds.h>
3 Y2 {  ?7 O+ D5 {- M#include <linux/platform_device.h>- C* @; `% n- W! |

4 T% @) n1 G" w4 l# M2 R' A#include <asm/mach-types.h>! ^# T- c" m* F$ U+ `
#include <asm/mach/arch.h>
% \8 c3 A% K( Y) j- J#include <mach/da8xx.h>
( D2 J' d% S$ w& o# {  |4 {#include <mach/mux.h>
6 w" ?* `7 T+ o  V3 l, I  V- Q* |/ h7 X) G7 A6 H* u2 S. b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; ?  L- X; r! `2 l# L" E$ Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ u  k: A# \) M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' h& ?, U5 S8 q+ v! N
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 K3 B" l$ j! P
, f+ T, _7 k: Y/* assign the tl som board LED-GPIOs*/, a' l$ ~" L. G* F8 T- w3 v/ V6 y5 L9 t
static const short da850_evm_tl_user_led_pins[] = {
8 P3 m- u  E) t        /* These pins are definition at <mach/mux.h> file *// p" h3 @% K1 B0 _# {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" m: U. S, Y- j9 I% X" |        -18 |* G% O; S( d9 Y  b
};
& g- Y' D( ~; ~! u2 p+ x
( u( y; R& R7 w- `3 cstatic struct gpio_led da850_evm_tl_leds[] = {
/ @5 I6 k0 j8 v4 i; Z  a  k2 P        {/ X6 s2 m, Z4 \  a  h
                .active_low = 0,0 C9 G9 N$ f9 i
                .gpio = DA850_USER_LED0,
/ t) s- g7 A# K3 m+ h                .name = "user_led0",
$ i- ^# j( C- ?                .default_trigger = "default-on",( h+ s3 v# k1 G  C
        },
$ O- M$ ]9 M/ L) t        {4 F" v4 }0 x6 p* ]" _% x7 Z
                .active_low = 0,
4 _9 v0 p. M7 I                .gpio = DA850_USER_LED1,2 Y& ]1 D0 L$ X- D/ ?, m2 B' w
                .name = "user_led1",
: u) w8 l: B7 A( \" X( L                .default_trigger = "default-on",
7 B* _$ t1 g# `3 C- F; \/ i8 }        },
! Z: q5 T% c: z, Q1 m) x        {
: }# E) H5 O; X1 A! B0 c                .active_low = 0,' Y1 E" a" B8 k$ T& Q
                .gpio = DA850_USER_LED2,
5 P  J* n. n% h$ L/ T                .name = "user_led2",
0 ]+ m1 z; C% ?                .default_trigger = "default-on",
, C( L: v  ^- d7 F( E! c        },
7 a7 W% W6 h- Z        {
" J, c( I6 g: {/ c( {# n* v                .active_low = 0,
& h3 F/ H6 ?% g, `- o                .gpio = DA850_USER_LED3,
6 w% j7 K: ~. x+ i/ V( F3 S+ d                .name = "user_led3",. ~9 j8 Z+ I  I4 S) b# H
                .default_trigger = "default-on",* y5 }3 j! {" u
        },9 A  G' k, o. u  n# H* y
};
7 M( x6 h9 R- H) ~' M# C% L+ ~1 u  B  ^* R8 l! {- o
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( D9 B, A6 M% N2 k8 O" f3 ~- u$ {        .leds = da850_evm_tl_leds,9 h5 A  w1 N. c3 q( h2 g  s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* B/ X6 {% n5 v4 x) w- \/ s4 o3 e
};
) k$ m, w' {2 T  l% r, x8 d% {' r! y3 V
static void led_dev_release(struct device *dev)
9 P7 p; Z- `6 T$ W, q{& q1 I, c  P5 D: q
};- f2 ~2 y. j3 t3 h- C

, u9 N/ K* k. s7 h+ {static struct platform_device da850_evm_tl_leds_device = {7 i9 K1 }# z0 G; T4 p
        .name                = "leds-gpio",) ]+ J' ]5 v% z+ [- z# R- W
        .id                = 1,5 R% B& I+ B( Z/ H9 d
        .dev = {$ x7 X) ^$ T/ F3 k8 O. ]" U
                .platform_data = &da850_evm_tl_leds_pdata,
3 p4 |7 o9 S* V0 r3 z                .release = led_dev_release,
/ L: c( l8 R+ j        }
( R7 G! m2 m3 R7 x9 `6 E. A};
+ g7 K) T! y! x: A
9 J6 W: n) ^8 L7 K% K8 wstatic int __init led_platform_init(void)
/ P7 V4 q, l7 g! H* |{
  ^* j3 r: e; V' f  Q3 k  K        int ret;
2 K7 h- q& ?4 {4 N! N#if 05 H" B4 D- G1 N% @2 a: m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! M+ T, U  Q7 @( [8 B/ t
        if (ret)
, l" z* M9 a: S' ?, _1 _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 N( p3 i7 C  T' Y4 b                                "%d\n", ret);
6 X# d( _) _7 J, }2 ]- _- D8 T! U#endif
: a" d- n* Y2 e; }! U7 q& w* y        ret = platform_device_register(&da850_evm_tl_leds_device);% `: [: I/ x' N
        if (ret)
& o) e% V; d& ~                pr_warning("Could not register som GPIO expander LEDS");
5 y$ d0 v) o4 |* ]        else8 {6 R# T$ Z4 Y" H6 K; z
                printk(KERN_INFO "LED register sucessful!\n");$ v) f1 q" ^1 V! v! w3 N4 h

1 u4 u: D9 g4 ?9 ^# k1 S        return ret;" M/ p  p- M3 Y7 `
}
/ j, o, J5 x2 C3 I
/ e- K) G* @7 H8 i* G6 b5 \. A( j- dstatic void __exit led_platform_exit(void)9 ~$ }5 V( C( k( Y7 D) C
{
( m: h9 U/ F5 [" U        platform_device_unregister(&da850_evm_tl_leds_device);: U6 {: P; x( o1 f5 W* o0 R
2 H. `. d. a4 l( G1 d( I
        printk(KERN_INFO "LED unregister!\n");
: B5 J& E( D  L4 |! V" g: l& H. Q+ p}( b+ N0 h! g* `* r

# @. w5 p, p9 K( F' \7 Amodule_init(led_platform_init);+ e$ B; w" M7 g9 q" I
module_exit(led_platform_exit);+ G2 Y7 ^  {7 D# Z

' r% j1 Z* I7 {' _! UMODULE_DESCRIPTION("Led platform driver");
" h5 ^0 r; T7 y2 h# K* D. D- O) HMODULE_AUTHOR("Tronlong");
( E" T& P5 i: Z/ {0 `% ]0 jMODULE_LICENSE("GPL");/ ~" J% Y# s! P, Y3 h
! h  v- p+ W2 O' F; o  s( b- B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 06:00 , Processed in 0.040330 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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