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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# q; E$ e' O- U8 u  V/ A4 i#include <linux/init.h>
+ V8 w/ S: e# m9 f& h6 j#include <linux/module.h>
6 v( Y7 f* I, |) m9 Z( J# D  [: S#include <linux/kernel.h>
0 z9 ^4 A9 o: Y. v" o' j. g#include <linux/types.h>! w/ v! ~1 A0 B" \1 Z' Z+ u
#include <linux/gpio.h>
- j. c" l" ^  u# ]; P#include <linux/leds.h>; u- N; e# ?# `. T
#include <linux/platform_device.h>! |  s7 ~6 B! d' R6 G- C) P0 f0 R
& R- `" y3 L: a0 T
#include <asm/mach-types.h>" k" I3 O+ ~8 E
#include <asm/mach/arch.h>% A0 P) T! Y4 Z5 w
#include <mach/da8xx.h>
1 j$ Q$ ]: ?# \* x#include <mach/mux.h>, f0 [' j1 J: ], ^& @

" Y% i. L5 B1 F/ U) f5 E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) z* J( B! I8 i+ g
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! S& j& G$ z; U" I7 b$ S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# b  L8 C1 m! _9 |+ K! d& x#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. N7 p0 E0 j6 `! c
3 a: L  x& Q: w/ D1 s' g! O( i/* assign the tl som board LED-GPIOs*/
( I& a2 W) u' F. ]3 Z% Fstatic const short da850_evm_tl_user_led_pins[] = {$ ~* {3 Z8 A. {& P2 ~0 [. \7 o
        /* These pins are definition at <mach/mux.h> file */
( d! ]/ B. a$ U& w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 Q& b" r: x9 z* `. q: m3 V
        -1
2 N! e% z/ \% D' d! `* y! x6 o; {};2 ?  K3 s2 t  y2 X

0 R8 M7 m- I% R  S! m6 gstatic struct gpio_led da850_evm_tl_leds[] = {: S% F/ K1 @; W# U6 Z( e# q
        {
# j$ R. L8 I; k% k2 W1 Z/ M; j                .active_low = 0,$ j3 r; B5 s1 f) E# L8 u
                .gpio = DA850_USER_LED0,5 L% k& U8 z' x5 A
                .name = "user_led0",. W  g% m  R9 ?3 v2 m, w. G
                .default_trigger = "default-on",
  s( l# U0 }" O0 K        },
9 b, H2 Z0 a, Z6 F0 I        {. Q4 i% _5 v4 P  Y, `
                .active_low = 0,
# s8 e4 h! T2 ~3 g2 I4 C                .gpio = DA850_USER_LED1,1 \, x; ^# S% o! X
                .name = "user_led1"," r9 s' ]# ^" G  i; B) P- u  E
                .default_trigger = "default-on",
( c8 C! ?& a1 _1 i        },8 u, `1 p4 O9 z/ U' {  R. r# t7 e1 ]
        {7 S* p; m4 ^3 J0 ]2 y7 L0 F. O
                .active_low = 0,% R1 a: O, s; k9 O- k8 W. x
                .gpio = DA850_USER_LED2,
% ^8 Z  K6 t) Q6 A8 _                .name = "user_led2",$ r) w5 L3 `* O6 d, Z) n3 t
                .default_trigger = "default-on",) d2 y& R: s* T0 V
        },  ?$ Y) v0 J8 N# m
        {
1 `. c' C% H: Q1 K. U8 g( `6 G                .active_low = 0,8 \$ y; ]; j" C" _) m8 n( O
                .gpio = DA850_USER_LED3,9 _" h% z- v! E# U& ^
                .name = "user_led3",
/ i3 ~" z: q9 T1 c7 a                .default_trigger = "default-on",! M2 ?3 p' R9 {
        },! p1 _; v: m6 e) g2 h3 ?
};5 _$ R8 g% l. \4 D5 K! Z8 q

3 W% m% a; z7 g# a- F4 vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 f# j6 B  M. k+ T* F( E1 ^        .leds = da850_evm_tl_leds,! q* O! r& V% h' Z2 `( A% i% c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 A( w  B+ q0 o
};* g& I: c3 e& D" ~1 i

# j2 f, x4 S; c5 i2 [  T' K5 Astatic void led_dev_release(struct device *dev)3 ~5 M# l0 P0 u: T) I6 L9 j5 o. \
{# o$ l, l" v9 g4 P+ u0 i
};
% e9 |8 H  t' z' x* ?$ w8 ?+ b- N) H4 L- d! p
static struct platform_device da850_evm_tl_leds_device = {
6 J- [; F1 [2 d1 W" u7 a        .name                = "leds-gpio",
6 [: C, N( O) M% c8 m, ~/ R        .id                = 1," R. x, \! m" g2 s8 |! h
        .dev = {/ F% O. ]. |& m/ P
                .platform_data = &da850_evm_tl_leds_pdata,' H' a0 B* w! u$ Q' z! B
                .release = led_dev_release,
# W9 l" L) Y! V$ v: ?        }+ r  m- I6 _( n* Q
};8 M, X" m. l; z+ n& s

- V! g- ^& V2 f. qstatic int __init led_platform_init(void)* r% z. d) h% u3 ]& Y+ z# R5 P
{
2 P7 f9 n; h8 H+ y! o4 C0 W        int ret;: K" @$ H+ U* F/ s% b$ R. L# w5 v
#if 0
! J) q+ }7 k  |5 A. C0 l0 c/ J# B( h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 \0 k4 u+ ?. g+ m7 {6 u
        if (ret)
5 v  g/ K8 E, I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( B+ I/ R2 B2 o
                                "%d\n", ret);% W) w8 w% ~3 z2 W2 R) h7 K( q; U8 o
#endif
: O+ ]$ ?3 f% D: {        ret = platform_device_register(&da850_evm_tl_leds_device);* h; _0 f6 Z% p2 G; b
        if (ret)4 a. |1 E* C& Z& v
                pr_warning("Could not register som GPIO expander LEDS");  G  p" y! y; C/ e3 F' ?$ U9 G
        else! T9 J' X& E* H& H3 B
                printk(KERN_INFO "LED register sucessful!\n");
* x  c, h7 E. u4 d: l8 @1 {8 n
, x) `$ ^! m0 T. k8 J& K% K* K        return ret;- X' R4 z  O; T% q, Z
}' C3 ]( i% l% }! J0 a
7 |2 U" x4 `) m$ }1 a
static void __exit led_platform_exit(void)3 d9 q+ R- s: W* O
{, _4 J2 w  Y7 b7 W/ z/ a; v
        platform_device_unregister(&da850_evm_tl_leds_device);( i6 n% I. J3 L2 ?# T. e% |1 ~! u9 Z
% i. q* W" Z0 ^/ `& |! _6 E" [
        printk(KERN_INFO "LED unregister!\n");
6 N2 V$ z, f) M# y# w0 w# V% K& I}4 R/ Q2 h* v1 u( s; v6 B# S
6 h* m6 u6 N! O
module_init(led_platform_init);* g$ E8 K, h7 U% T2 ?
module_exit(led_platform_exit);% g5 Z* F4 h- L* Z
% T( N. F; x: S4 k8 K
MODULE_DESCRIPTION("Led platform driver");
8 p- q1 n; B6 @# \2 RMODULE_AUTHOR("Tronlong");( U4 u4 h( F' x$ s
MODULE_LICENSE("GPL");
: k1 m9 Y4 X& e- Q8 d" ~: v  D
0 {  G6 B: y+ F* p  v1 R! S& M/ ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 04:31 , Processed in 0.040814 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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