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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' A6 {0 e  {9 j#include <linux/init.h>
6 V* Y9 ?, b4 o% N8 U  f! w/ E4 D#include <linux/module.h>6 P8 D* w6 C- z) ?  r! H8 ^" [
#include <linux/kernel.h>
! h0 l) q- r3 t0 j7 d& s% S#include <linux/types.h>
# D$ U* B/ X4 }1 Q* A- f+ D4 b#include <linux/gpio.h>
8 c) Q- K+ ?" U& v& n; F: f#include <linux/leds.h>
% ]5 t% ~: `: k8 |#include <linux/platform_device.h>8 J0 y6 ~" M" K  c- W; q" y

( l& _+ Q6 S0 C: Y+ G#include <asm/mach-types.h>. F0 I' E2 p, d7 _% D' \  h
#include <asm/mach/arch.h>. F% D! @8 b( A
#include <mach/da8xx.h>
1 s: |6 a7 e. N4 e* z#include <mach/mux.h>' B/ I& D/ ], E5 e/ S6 R& L! ^, p
5 i0 I7 T! f5 {$ ^( U+ }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. e5 z( q2 g5 X0 ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 J8 {7 r$ ~) T; j& L3 K! ]/ a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 H7 s5 X  j2 G$ y% k0 P2 z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. X4 O0 S8 V2 W
6 @8 }: g  W% V/ G5 q: y/* assign the tl som board LED-GPIOs*/
( K! |+ m* I& }9 Q" ustatic const short da850_evm_tl_user_led_pins[] = {
) G- V' ~; `5 i0 O: c; z        /* These pins are definition at <mach/mux.h> file */
8 @1 i! S, A5 p$ @' p. t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," |9 G. d* |* g8 b$ |
        -1* q& B5 d  \) i6 u' H$ w- Q
};! A9 n! C  e4 ]

1 v4 I$ c& R. B# v' h2 \; mstatic struct gpio_led da850_evm_tl_leds[] = {4 D9 f( L, i9 F- B1 l+ T! t
        {- m$ ]6 G$ g" m! L' O9 s
                .active_low = 0,
$ ~+ ^; H  f9 N' U2 @; n' U# d                .gpio = DA850_USER_LED0,/ s7 }6 Y  f" z' `) M4 T
                .name = "user_led0",: z& e+ p) N5 ]* B
                .default_trigger = "default-on",
- s9 N  A/ }5 a' Z0 Q        },/ y2 M8 U* Q6 s& h% Z( v( P
        {* R. e7 _4 g2 H$ p; M$ U% Y
                .active_low = 0,
4 u' L4 v% j$ G1 z& h" {) l3 L                .gpio = DA850_USER_LED1,8 Z- Z9 \- m/ L1 G" F' |
                .name = "user_led1",& O7 n5 t5 L5 z/ m: T6 ]# S3 S
                .default_trigger = "default-on",
8 p+ D. Y7 a, _        },
" y) [* ~( Y' i0 Y* w& S4 b        {
4 @' r1 X, A3 j& B) p2 Z; Q; p+ L8 W                .active_low = 0,' q9 p" x  a; x. X
                .gpio = DA850_USER_LED2,7 r5 I' ]/ U2 I0 _
                .name = "user_led2",7 j& K% T. s! W& R# v: O
                .default_trigger = "default-on",0 \" b# n" }) c% y! i9 W5 P
        },6 M" f' G$ T1 S4 E1 w- _* k2 X, ~
        {# B! L6 H6 E6 T, M  I7 e9 i
                .active_low = 0,4 V: u$ L+ F5 e! ?; w# q2 Z
                .gpio = DA850_USER_LED3,
. ^% Z; O" {: u# @2 e' {                .name = "user_led3",; X' G! G) f4 Y# c& U6 h* w9 ]% w
                .default_trigger = "default-on",
3 O  v. N! M1 Q4 \) c# s# h        },$ F1 c! C$ `5 `3 q
};' g- c6 A- G8 N' `

6 X2 x" m$ f$ x# W/ H& dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( l! |) F, I; a6 Q& F7 x4 C! P( s
        .leds = da850_evm_tl_leds,  V# O/ m' v% q: _, V) a* z3 S7 d# y* b7 H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) t' Z* X! E1 J; K" M' l};
2 g% S. l7 h5 N) r
3 i3 X6 E$ f8 w. R( W/ n3 ]; L: rstatic void led_dev_release(struct device *dev)
. v# }1 \+ j4 m9 V) _6 |{
: n! j. k2 x3 N$ C' w};
0 a6 Y" y. G( z: {: f3 u* x7 E
* c$ z& a; d$ v1 O, f7 K. `static struct platform_device da850_evm_tl_leds_device = {
0 r. d9 _4 T0 V3 o. _6 D6 A4 N1 I( N$ F        .name                = "leds-gpio",8 r& J: t% v8 G8 I/ K: K
        .id                = 1,  B& C& ~8 \' x; }
        .dev = {% ~/ r6 @$ I" p# [
                .platform_data = &da850_evm_tl_leds_pdata,: }4 t/ i& Y. j1 G* _0 L0 `$ z9 ?
                .release = led_dev_release,
7 _( N9 X/ ?& Z; p        }
7 V- k3 F6 o4 r( a  @) T+ b};
3 n, C/ y! V) e" m1 e
- _" m6 o/ L7 d7 @static int __init led_platform_init(void)2 k# R. M7 H7 _  V
{
5 ]! M* [7 b; b1 L$ o5 W        int ret;
* b# A$ |& k3 h9 ?" e9 P7 s4 f#if 0
4 m- o& `$ O+ Z4 v; y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ U/ K4 Q9 ~+ }! S. c/ T        if (ret)
$ \7 X$ [3 C5 P0 V6 \/ Z# P9 c, W* t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; s* x# T5 u) D  y- B/ C/ H; z3 }& z& U" b                                "%d\n", ret);
, ~) ]' P0 U' E1 A& D#endif
+ u, w; h/ |1 m$ x5 c        ret = platform_device_register(&da850_evm_tl_leds_device);' z  A) m6 D2 I5 K
        if (ret)
& M3 y9 {0 \, j0 J                pr_warning("Could not register som GPIO expander LEDS");
2 {! F. @" d/ E. i6 s        else
6 A9 U) n6 y# ?" T                printk(KERN_INFO "LED register sucessful!\n");, {& _0 @- p: ]7 k) ]( `
, p" Y$ J! b/ l  t
        return ret;
( W/ x! P8 g6 o$ q, y}- G8 \  k3 P5 T, @0 S% \$ J4 d# S
. p7 x. i- y" g# v
static void __exit led_platform_exit(void): T, `2 }% G: n
{- ~& ^9 E) u% _/ B
        platform_device_unregister(&da850_evm_tl_leds_device);& ]6 m# e, O- |7 i

( m; r: h9 h5 \! \3 i9 A5 I4 O        printk(KERN_INFO "LED unregister!\n");. a9 W- c/ ]9 z0 F7 v
}
0 V; M6 @, x  \! X/ m3 L6 @: n/ p) E
module_init(led_platform_init);
: v% Z. u1 D4 P: rmodule_exit(led_platform_exit);1 M; }5 y6 W8 }! P. P

/ U$ f* N. L$ vMODULE_DESCRIPTION("Led platform driver");: V  c; C4 X3 D+ l
MODULE_AUTHOR("Tronlong");
: X* x" U8 {. O3 PMODULE_LICENSE("GPL");
2 m! @; r) m8 _3 i- s2 q; {3 j* s7 `/ E& `) L2 Z0 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 01:27 , Processed in 0.040974 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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