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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% W: l& K3 K: ^+ u0 Y: v, p0 b$ x#include <linux/init.h>: h$ d) g8 j$ [* d/ O3 k/ T, Q
#include <linux/module.h>5 |6 ^9 @& B3 s* q5 _4 V
#include <linux/kernel.h>9 E( F5 s; x0 i5 B+ T
#include <linux/types.h>$ u0 D9 y: H& c4 ]6 Y  L/ ~( @
#include <linux/gpio.h>
  g4 c: X$ O$ I! w1 \& U' [5 b5 ]#include <linux/leds.h>, P4 h  S2 ]& m9 Y0 D6 v9 J) m' f
#include <linux/platform_device.h>+ J: h& J& e( b2 c* c

1 i$ ^! H; w  B9 G#include <asm/mach-types.h>) I  u! K, T/ E9 M$ j
#include <asm/mach/arch.h>; \2 J0 N* J6 s- F$ o5 a
#include <mach/da8xx.h>9 z! H% ]3 j! o/ ?
#include <mach/mux.h>
& O( @6 ]; v& J! `  m, h2 K, j9 I3 Z0 k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- W- N3 ^2 y$ \) }, }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ G& ^9 x& D0 T4 q8 m- j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 R- g# M8 |" S5 b1 N% I6 w, Y5 p. b2 K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! B& ^4 C! X; u+ v6 A* Y
  h7 O" @- }9 h7 x: N% J
/* assign the tl som board LED-GPIOs*/5 N0 n8 B: I% M% F' [
static const short da850_evm_tl_user_led_pins[] = {1 N( F6 _: f- F
        /* These pins are definition at <mach/mux.h> file */
% o4 c8 k% h: W! b- f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  }6 C) Y, k, N. y+ ~5 d        -1
; ?6 V" ^& X/ a8 M  D6 L+ n- m};
* b8 k) J- R" h' d6 y9 \
' ?$ @: K- M# r# w7 {4 Z; [- k' g/ Ustatic struct gpio_led da850_evm_tl_leds[] = {) B2 X) {- ~1 K
        {
* O$ }3 _( ?! d                .active_low = 0,6 n  R* z6 O) {5 a
                .gpio = DA850_USER_LED0,
1 r) I$ r! q# s2 A% {' i! K/ q4 v                .name = "user_led0",% p# B& o0 B& s& `& V# ]: H
                .default_trigger = "default-on",3 k( ^: D5 w" j: N8 o" E# a2 y
        },
) X$ j$ F/ O2 o        {7 X+ i. V3 c* g! T" [2 p
                .active_low = 0,
: O. m9 V+ A2 V: L( S                .gpio = DA850_USER_LED1,
+ u* v5 T1 g4 D( o                .name = "user_led1",& ^# o: b% J! J: Z( U) B( c4 n
                .default_trigger = "default-on",
7 M2 [* f2 H1 H9 R        },& P) u. r6 S+ O* k: v/ T
        {
0 m3 ~- U/ E( M- v) H2 i+ K                .active_low = 0,7 ?% Y( B% e, w& U7 W! Q3 b
                .gpio = DA850_USER_LED2,
; J. m( w. h# a                .name = "user_led2",7 Z# N* L: N! {! Q
                .default_trigger = "default-on",0 u0 F2 v6 D, n5 p7 b2 }
        },
4 V3 ]5 g4 o  \: D" t% j        {7 p2 [5 c- ?4 e6 r% }8 {
                .active_low = 0,1 j( z( O5 c1 V
                .gpio = DA850_USER_LED3,
5 C3 w0 ^7 ?& Y' I                .name = "user_led3",
2 ?, t7 H" j1 q. u; |; r' I  i                .default_trigger = "default-on",6 [# A' ?) K" z) b9 ]2 }
        },5 ~; n* A+ s+ ?. X4 O6 y
};4 N6 `% A, Q4 g7 {

, G8 E8 N9 I* u9 ?6 pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% `; A) D9 I* d/ z0 S+ y0 |        .leds = da850_evm_tl_leds,
4 H- q7 u8 o: C) h+ I9 v0 n3 f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" F/ Q0 I4 h% n/ j! P- r2 k};1 U) _, X6 s& {* P! i7 |

1 v* b3 z4 M/ H3 |: T# ?+ vstatic void led_dev_release(struct device *dev)+ r$ f+ l) T) I8 @, d7 `* m6 v4 `
{- m' o% ~, E7 h; E+ ~( v
};
* l3 Y# ]" V4 R$ t* \9 h& v
: h* p% M9 s1 b8 U3 ]5 I- N. m- rstatic struct platform_device da850_evm_tl_leds_device = {1 w3 ^: b, k! h0 g' q  ~0 B
        .name                = "leds-gpio",/ H" Y0 C# f9 @( z6 U& I, A* }
        .id                = 1,
8 ?; ?' ~& T. ?% @+ z        .dev = {
0 _: M, w( w- x% B; ^                .platform_data = &da850_evm_tl_leds_pdata,
; i4 p1 U* x, J0 ?                .release = led_dev_release,
7 Z4 q, }( V* f' A3 v        }7 ]5 K, L2 l) M+ A& L
};, @. U* E4 l, P% S0 e9 p
( M# c" H  R7 H' o
static int __init led_platform_init(void)5 t9 g: q- `( [  }
{" s+ O) v: v& N2 R
        int ret;+ n2 \- N4 F; ~0 n3 D
#if 0, o# Z$ P! w' D- }# g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 {4 }7 b* g0 m        if (ret)
! y3 O1 E6 q( ^! ]" P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 f0 c8 |; W5 j7 X4 B1 f                                "%d\n", ret);( }, P: Y3 a* p+ F
#endif
1 I" u" e: n* t/ z& I( r        ret = platform_device_register(&da850_evm_tl_leds_device);3 r" E0 i4 h: a3 a+ q% N  t5 Z
        if (ret)! V+ e! l4 z1 N& ~% S1 Z5 h
                pr_warning("Could not register som GPIO expander LEDS");
1 @4 I+ U9 |7 p0 c( o8 Y! x        else
( o2 ?+ s" h7 y$ v' `                printk(KERN_INFO "LED register sucessful!\n");
, K6 T0 w0 S9 F8 l/ g: `) l6 L0 [* Q& t% }/ \
        return ret;5 |$ f' L+ U2 J# N
}* z( w0 g* _: {/ f7 l3 g2 q+ c

& ^- f) H% I/ P* {, Pstatic void __exit led_platform_exit(void)
  p/ l; m5 J0 g/ B{
# n- N3 }- m! C4 u' b" m! B2 z        platform_device_unregister(&da850_evm_tl_leds_device);
0 m5 X% x0 I, y# p! X2 }' h7 `3 v3 v
        printk(KERN_INFO "LED unregister!\n");
2 q6 M3 W5 Y, ^1 ~9 W$ x}
4 ]2 d4 D- \- D( ~# j3 E  r$ ^' O7 [
module_init(led_platform_init);
* M6 Q) U! V+ B( ?module_exit(led_platform_exit);; I6 x& e5 L) x& }4 e
9 @0 f4 G, x# U9 Y- V8 Z/ r, D! a
MODULE_DESCRIPTION("Led platform driver");
; `. ~) w% ~6 Q; T: G: j, X0 t% oMODULE_AUTHOR("Tronlong");0 \- [* I4 Y2 k
MODULE_LICENSE("GPL");- }3 }  e8 L; U* f( F

4 v" x, |1 y5 g6 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 18:11 , Processed in 0.043718 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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