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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 J) F2 j+ l7 X4 g* `7 R#include <linux/init.h>- C' V& D5 C( i8 N  E! L  z) {0 B
#include <linux/module.h># ~7 n0 L, `1 y1 N9 Y; a
#include <linux/kernel.h>
9 S1 S1 p) N* f) J3 `* T#include <linux/types.h>7 g5 d8 V+ E; ^! h2 m4 }6 s
#include <linux/gpio.h>8 i: i7 r+ ~6 T6 z
#include <linux/leds.h>
7 {& W+ e" {2 r$ w3 ^6 v) j#include <linux/platform_device.h>
! `) Q5 G5 V" o# N3 Q4 E/ U. _: K3 h5 p, U$ D% N9 V+ m: e1 A+ }
#include <asm/mach-types.h># U; ~; j! C1 `4 _4 K+ ?
#include <asm/mach/arch.h>" n: R/ T. `+ O
#include <mach/da8xx.h>) ^6 l* n8 r5 E1 q+ ]9 s
#include <mach/mux.h>
" e  X% v/ ?# J5 F& ^, L& U' u# C, ?" p+ N3 j" {1 K
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 a+ S# `/ ^; L3 u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ X. C2 f; E- y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 F: }9 V, R+ D3 [! K8 R- R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. ?! W9 u2 D) G, o: `, }6 U- t1 \6 x$ a' v7 I# p: t5 u
/* assign the tl som board LED-GPIOs*/. V5 j- L( h0 H& D# X* U
static const short da850_evm_tl_user_led_pins[] = {
+ b) Z0 C1 _$ o! ~2 W; E! F  @+ p& D  Q        /* These pins are definition at <mach/mux.h> file */$ s" ]: c' n5 v: W7 K# W& K! U( \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- E' q4 d4 G  s$ I2 }8 w% I7 m9 j        -10 N* ?7 i/ X) U0 M- H  ~. x' ]
};' z- g5 M/ q3 \' Q% ]
) c+ S+ d5 J  ^$ }$ t" A& I% ]
static struct gpio_led da850_evm_tl_leds[] = {
: h( b8 N- k9 y& H- v        {
7 c% i5 j- Q  |/ W                .active_low = 0,
' P( L4 U2 G1 H; V' j) _0 ^. Q( h                .gpio = DA850_USER_LED0,
! j' H, z2 S3 A6 s, ?                .name = "user_led0",( z1 O% A, e5 n# c
                .default_trigger = "default-on",  t1 U. w- B  s, |) e
        },  m2 N" _3 ?) ?# ?
        {
% e% O( K' M/ n0 J                .active_low = 0,4 \; W/ o! T: K  r! I
                .gpio = DA850_USER_LED1,
* w! a# _" O. o0 C3 z5 l& C                .name = "user_led1",
  S9 z, m- D3 H" C" V9 C% U) [                .default_trigger = "default-on",
. R& g( Y$ N# b  U5 H: y8 [        },; O9 Q9 G) }: j6 d5 ~2 y# I
        {6 o) e, }( T2 ?4 o" m8 j. e
                .active_low = 0,9 ]  Z5 _* S, M* b5 r
                .gpio = DA850_USER_LED2,
( _0 W! _; c6 _                .name = "user_led2",
, C( _2 ^8 F* A6 z, I6 y1 N                .default_trigger = "default-on",$ @& B- d5 B3 H. e+ }1 c4 b3 f) L
        },1 S0 G5 A+ n- h% ?- G5 Z+ D# c  X# ]/ t
        {
# k% K9 R- C: c3 G0 w2 L# N0 t                .active_low = 0,6 X: a+ c& x' C6 m
                .gpio = DA850_USER_LED3,
5 j9 ?9 x! `# o# v7 s                .name = "user_led3"," m1 J# g+ J2 @% T
                .default_trigger = "default-on",9 x9 t' E2 c- d, k, E
        },
' z- A/ ]6 T5 ~  N};
: t! F0 v( ^0 {* ~- u. E
3 o/ [3 T1 J! B" B/ c7 Qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 B4 u8 n! O$ y9 c! {- ~3 @2 v
        .leds = da850_evm_tl_leds,! O2 H+ ~) d' Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  L& T! K$ H/ m6 M3 I};
3 h; g% g! w/ U) r# I; P: Q+ y; {$ ]5 Z" L) b5 i" i; V2 C
static void led_dev_release(struct device *dev)6 z- }# ^7 K* ]2 q
{
, l; o# M5 r' J/ ]};" W$ y& |' [) n( T( K6 U0 B

: n, W9 G- c+ G! F3 ystatic struct platform_device da850_evm_tl_leds_device = {
# R7 E; B5 m3 Q: m* }7 _0 a" h) O5 s        .name                = "leds-gpio",
: L" C9 y8 i/ e4 b0 O: ]- r! ?        .id                = 1,- [  M; J' L  O& I
        .dev = {) }- Z9 W+ T9 Q$ Y/ C0 I
                .platform_data = &da850_evm_tl_leds_pdata,: ?9 d: J+ S) j$ e6 W
                .release = led_dev_release,5 v* ~% M; A% _! E$ Q0 I8 `' Z8 \* u
        }. L7 q2 \7 H8 l! V1 U/ r% l7 G
};
" |6 A1 f8 V  A4 M9 H
6 s8 L( v9 H9 e2 j/ S/ r1 A7 Ustatic int __init led_platform_init(void)
2 x9 Q  R1 [8 b$ c8 F7 ^' S{
; W& f( h! q, e" t$ _9 D/ m/ [        int ret;
/ U+ p& E& C5 i9 H: v0 A#if 0
# y; ?/ p2 b. a1 _% E. j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ z8 M4 k% }, }3 C        if (ret)
  f% G2 C5 _5 B5 i2 t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 M8 \; ]+ @  v$ q: N                                "%d\n", ret);
+ z- B; M( [+ H! k: Y#endif
0 |- H5 o4 n1 T  X4 R        ret = platform_device_register(&da850_evm_tl_leds_device);, M* w1 v+ h1 Y
        if (ret)/ n- m1 h. i4 `9 S7 ]( f
                pr_warning("Could not register som GPIO expander LEDS");9 C7 Q! ]0 X3 a9 F% ~' Z9 D
        else' h( _3 `6 O6 W+ N: h7 }/ Q' O+ s
                printk(KERN_INFO "LED register sucessful!\n");  E5 c, B+ Z# }6 C1 j9 {7 o

& w/ u' f& x  f8 a2 W- t/ C( Q        return ret;
. [* t# c; u' Z2 g2 W. W! m}; \1 c# o! j6 o# W
, }$ M3 [, P+ m2 F# x$ t/ }- Y
static void __exit led_platform_exit(void)6 G1 p# D- K8 ~5 F: ]% [% h# r# |+ C
{
- M) r% D6 [' W/ Y# e        platform_device_unregister(&da850_evm_tl_leds_device);4 V- X% \, @' \/ y

% w) h% m! R6 s        printk(KERN_INFO "LED unregister!\n");. N- b4 j7 H! [6 l
}# m( l% h# C, q( o8 U% }- q" I
8 a. c3 l4 f$ }9 F4 W, H+ F
module_init(led_platform_init);( q+ |5 F. ]& V4 B: s
module_exit(led_platform_exit);
. h6 p$ B, T! d9 ~2 w, I( ]3 j" I. q& p- G' I) L. k4 M
MODULE_DESCRIPTION("Led platform driver");8 g/ c5 Y/ r9 V% H- i
MODULE_AUTHOR("Tronlong");
8 }7 X, D9 o0 AMODULE_LICENSE("GPL");
& a8 i1 X' A; s; z0 X6 V: d6 i# [
" c8 u$ \3 p  D' P* f3 u% V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 09:51 , Processed in 0.039618 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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