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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, Z+ i$ ?4 p. D! t. u/ f% }4 Q
#include <linux/init.h>/ g: U2 @5 x# z
#include <linux/module.h>3 |: L" {9 u+ \! l
#include <linux/kernel.h>; C" R- \+ c9 }6 G$ q# d* n5 s
#include <linux/types.h>
$ ^* r' Z  R/ k% {& W2 _& o! _5 z#include <linux/gpio.h>: c* H! |5 J& |- W1 ~% z7 ?
#include <linux/leds.h>6 R" `6 E/ k, C3 V2 S/ N
#include <linux/platform_device.h>
9 _  r9 ~9 K" ~( U& x# z4 K& h1 u' k' X4 f9 v0 A
#include <asm/mach-types.h>
+ D5 {, X5 ?% n  o8 z#include <asm/mach/arch.h>
4 x, Z7 x1 l0 j; x$ g1 y5 E9 b5 H#include <mach/da8xx.h>  x: ?! ^9 U  W' o/ l9 L: E9 F
#include <mach/mux.h>
! M. V/ K6 ]$ x1 k( t- G
) ?" R% _6 o) V! |2 F2 V6 P) v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 z0 z8 s! P* r- P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 L9 y' J# q4 D9 v* J- Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ E  A  M0 {3 ~2 R8 \  n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- J) j8 L6 e! H0 Q* v
: {% r6 b- N5 z5 B% P, u: a! m: @/* assign the tl som board LED-GPIOs*/
* w2 Z3 x5 t* m* P# u: b% Nstatic const short da850_evm_tl_user_led_pins[] = {  \! ~& v2 D+ ^7 J6 ~- e
        /* These pins are definition at <mach/mux.h> file */) I8 F/ F4 j$ F' m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 f" f8 J1 x5 Q- V
        -1" K( V4 p% s0 j5 d6 L: g  J
};
. V$ t6 y$ I4 G, q; n% B" `- U3 u; r: y8 j( l
static struct gpio_led da850_evm_tl_leds[] = {8 f2 x7 c) a& ]$ g
        {
1 [. _8 W% o  N/ f' g                .active_low = 0,( x9 C3 g3 c2 w$ w$ f( s( \
                .gpio = DA850_USER_LED0,1 L" |0 ]- d3 L
                .name = "user_led0",$ B' x' g  j% H1 I% b7 v/ \
                .default_trigger = "default-on"," W# [6 |9 n. S- E+ c
        },2 u1 {3 Z% f' z' O! B; o
        {% e# C! U3 g2 z9 \6 [/ E* |; k
                .active_low = 0,; }( L" _' E% b
                .gpio = DA850_USER_LED1,* ~6 {$ D% r" A
                .name = "user_led1",* D5 C  Y/ `" A7 d9 u+ g- F
                .default_trigger = "default-on",* t2 y2 z7 ?4 H' g& ?7 M
        },
1 J0 {* I- L# R# e& f8 l        {+ n0 g- V* X7 h8 d3 ?- p& \) ~
                .active_low = 0,# a! M& G1 b" |5 Y8 T
                .gpio = DA850_USER_LED2,( F& N1 u  q+ t
                .name = "user_led2",1 {, _; m* d  S6 K5 X1 X8 Y
                .default_trigger = "default-on",/ L( J6 U% Z! W. V
        },
0 G  o9 D: s! `9 v4 D" B        {
$ ]! |* t& D3 t1 Y8 B/ o  C0 r                .active_low = 0,; V2 b& g* `: u6 i  f8 k
                .gpio = DA850_USER_LED3,0 g4 y. ?% c$ v* J9 C5 ~
                .name = "user_led3",4 e1 v( X% ^5 p( H$ l
                .default_trigger = "default-on",
2 y0 h+ l5 S. N. u5 O: V/ a/ E        },
6 ^" h/ ]4 s+ G9 P, i* A+ c};7 c! j9 \8 o# U5 u

" }- J& p1 z0 Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 q. D. K& V9 K* P! {+ }
        .leds = da850_evm_tl_leds,5 g& @) G3 C5 o4 |" N0 M+ \$ |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! n) N0 s+ B( J; w1 A& S' D& a# ^
};+ N( Y9 O( [2 _% P1 r5 L. O5 G/ e

) C7 v: R6 \" M; R4 u  s2 ~static void led_dev_release(struct device *dev)$ n3 `/ B8 z. F" I
{# n8 l+ v* M+ M
};. f! A! V6 f$ H' G5 ?- w* |

, D4 O4 l. c. U/ e* B  astatic struct platform_device da850_evm_tl_leds_device = {& U  \7 u& K" R+ Z
        .name                = "leds-gpio",# {( O" @3 I! Z" Z7 _4 T7 @
        .id                = 1,  m0 v. p, M3 C$ U8 I
        .dev = {8 U% P; h0 j+ B
                .platform_data = &da850_evm_tl_leds_pdata,6 }6 C. N1 x# u$ V. j! W7 Q
                .release = led_dev_release,
: s* \, K, @+ F: F& x) D- Q$ f        }; \2 H) N8 D) C0 L+ Y% o3 D
};
3 z* r' d2 {  a2 W6 S: k- e: `, _$ x+ C& l: I! o0 I' t( K+ B
static int __init led_platform_init(void)
. ?% e4 c( _7 u, u4 l{" T/ i$ F$ B" O  C6 ~# D
        int ret;
# M- j! M7 A! a. T2 ~- H. o#if 0; W$ \, l% N7 Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; L7 q9 h7 ]7 L8 b9 U& C" b; U        if (ret)/ V$ L0 C8 I/ W* O& D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 A! c! O: Q- \1 V. |! t
                                "%d\n", ret);% Q1 p; O$ y- |1 Y
#endif( p  J6 ?9 Y, V0 ?
        ret = platform_device_register(&da850_evm_tl_leds_device);, Z& Y; V/ x! _. d6 F
        if (ret)
$ J  y% v, N7 q% u$ m                pr_warning("Could not register som GPIO expander LEDS");
) |! M3 N/ g' ?; V, F        else
2 H; i3 d4 [+ u" Y+ j                printk(KERN_INFO "LED register sucessful!\n");8 ~4 z( P, b* l

3 {, C, k. z; Q& e. k/ o  ^        return ret;
) b) N7 N2 v! c  i4 _* v; g: Y}3 n  |5 N+ k. w% F5 o- \' e5 H
5 g1 b/ T1 a, S$ d: ]' g. A" z
static void __exit led_platform_exit(void)7 C% b' f  O: j3 d6 ^! u' ]
{' z. G" V& c: S( e  ^. v- W8 }
        platform_device_unregister(&da850_evm_tl_leds_device);( U3 J+ j; L  W! i# e; z0 q
, }9 a/ C$ u+ l" ^. M& _" e8 e& P% S
        printk(KERN_INFO "LED unregister!\n");
3 A  w* O4 I/ k7 [/ ?, n( U4 l& i}2 P( q, z7 W! h, a# O6 n) u: B0 Y( I

( j! g% q) q4 y# v; m4 ymodule_init(led_platform_init);- Y2 d  [6 {1 Z$ A, V7 @: m9 E
module_exit(led_platform_exit);9 L5 t4 X5 G. a0 l0 j

7 {; Y7 {6 p; E) x/ tMODULE_DESCRIPTION("Led platform driver");& R  q2 t% H- N4 n% }) j
MODULE_AUTHOR("Tronlong");
4 S$ u, L7 L( N3 e$ YMODULE_LICENSE("GPL");
2 a3 o5 O9 W9 T9 I3 }) ^2 v) s4 g. }- L& R# q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 01:43 , Processed in 0.041035 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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