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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 k; n. `8 O. v3 ~+ f
#include <linux/init.h>
  s( C2 }( s9 r) Y7 e#include <linux/module.h>
% E4 X! x% ~1 g4 b: e3 U#include <linux/kernel.h>
  ]7 R( H2 s6 p$ e# r* }! y* V, Q#include <linux/types.h>
1 W/ o- y+ A) I#include <linux/gpio.h>
  u$ l6 V- m& S1 t9 n( P. x7 t#include <linux/leds.h>
/ \& [$ r) |8 r6 m$ _+ A#include <linux/platform_device.h>6 s8 R% Z7 k3 S7 d: z2 ~7 U

/ u6 R+ X+ j9 Y7 O* N, U#include <asm/mach-types.h>- Z7 V# `( ?9 p
#include <asm/mach/arch.h>
- m6 C- u2 D! c; D& {#include <mach/da8xx.h>
5 r0 c0 }- l! @( g#include <mach/mux.h>
: [9 d2 |! d/ P% @% g6 C7 z. p& W" k: M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 q7 R9 G4 H. `- u' I$ n! d" h" I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 B3 P% [& _7 O- {% Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( h& M3 V: i, T0 h9 T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): G" z( U0 a) T) P: F' D! O

7 `! x2 c) O7 W; _/* assign the tl som board LED-GPIOs*// H( A& ~' z8 N1 u% a
static const short da850_evm_tl_user_led_pins[] = {/ D! B# E; t" W" ?. d9 M, p
        /* These pins are definition at <mach/mux.h> file */
9 }6 B7 m6 R9 J        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 n" y- r! G1 F5 J9 W8 H2 a        -1) z& Y, Z: E' ~1 z+ Z, W
};
  ^: z8 X( i4 t" W8 P* p: D5 o5 r( o3 h: h/ b3 w+ |
static struct gpio_led da850_evm_tl_leds[] = {+ l0 o4 G! V2 L6 Z# \. M' E; N3 z
        {
! N; P2 z8 U% j/ M9 W* Q3 ~' L                .active_low = 0,
0 q: E3 d  t6 ^- h) F! |* p                .gpio = DA850_USER_LED0,$ o2 Q1 p' C- R% [$ M
                .name = "user_led0",
- @+ |7 q7 {/ e                .default_trigger = "default-on",
5 J  v' ~4 s2 Z5 Z9 `        },5 M! W# _& l) [) t2 C$ M
        {
! }3 }) c( @( z+ k! b6 @4 F$ J                .active_low = 0,
* G) v) Z/ D& H                .gpio = DA850_USER_LED1,
# Y+ ]3 A% p; K, T                .name = "user_led1",1 d3 a! w" Q2 r% s! j. d
                .default_trigger = "default-on",
( y+ q  e& |$ b1 ~1 y/ C* {( v5 I        },# h. a2 }+ f% i0 W9 S( D
        {
3 Q) S8 c, n* u7 V2 g  I+ f" U# x                .active_low = 0,
1 l" j  j; V5 _( c, e                .gpio = DA850_USER_LED2,
  I1 z; v9 O2 U# q) a                .name = "user_led2",2 z# X8 Y- B! `: v# b- y
                .default_trigger = "default-on",
0 P8 h# k. g# L9 q        },2 h# y- J5 S: C4 D
        {
1 n0 c! I! \2 v5 z& ~                .active_low = 0,# `1 i  u* P1 O8 n
                .gpio = DA850_USER_LED3,
, m' Q8 Q/ w' j+ S                .name = "user_led3",$ B  o  W) c7 {; D+ n: g* `3 U
                .default_trigger = "default-on",% h* C' J3 H( z9 Y! s2 h" e
        },/ j6 a' m$ n  v4 {% m, h1 ~
};
  m+ d% G: f4 u) o  E1 z! H
' ~) x1 H% A0 i4 E" Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" K2 m3 n9 s; _  ?
        .leds = da850_evm_tl_leds,
. a' t  p$ R/ T4 r7 y4 j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. V0 A4 E: M8 I8 Y3 c0 J( {1 S5 M};
6 h+ v8 d! `* S5 ]3 q& V: D
; w3 O0 _" l) [+ }static void led_dev_release(struct device *dev)3 r* J# z/ S- R7 |3 n- X/ l- e$ v
{4 p. U4 Z  r* X) \0 P
};
" A$ N! P; Z0 ^0 b, d& X9 o
; F: o5 Y% Z# O( I  cstatic struct platform_device da850_evm_tl_leds_device = {+ q- L. f2 Z$ ?
        .name                = "leds-gpio",- X/ y! t" q& P7 M" P
        .id                = 1,! g8 X+ _* ?- @& I5 j7 R" A
        .dev = {, Y* X0 n" e* `; B' X: b
                .platform_data = &da850_evm_tl_leds_pdata,, y$ }2 A. q, }/ H
                .release = led_dev_release,( b' l" o. W# d3 h; ?' H
        }) A* r* \# f, O4 p; \5 W
};! o9 c  G4 T/ K# Q  w0 }
  |# t$ U- O. i$ d
static int __init led_platform_init(void). Z$ b' M" \' K( Q8 ]
{
# ^7 V' ?& s4 B# j. K; p& b        int ret;
1 |3 J' X( y/ I# I#if 0
; e! x4 {" K6 I& H+ l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: M! Z; k- m% d3 m
        if (ret)7 @$ V; N" o& P
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! Z. w) s" Y; g+ m% H& M                                "%d\n", ret);% G1 y# B# o# f! X% E& }2 e
#endif
2 I8 S. z. e4 f4 R  g2 J, Q. t* G        ret = platform_device_register(&da850_evm_tl_leds_device);
( u% J1 m# n9 ^4 U/ F( e; t        if (ret)5 y( t3 z$ Q2 {! K6 u# T( s$ L
                pr_warning("Could not register som GPIO expander LEDS");
3 I+ L$ ]$ T1 D. d) y& G        else3 J9 t" y9 K7 R& H/ j
                printk(KERN_INFO "LED register sucessful!\n");
/ Z$ M5 _2 W- x3 X1 V" a) w5 |7 W6 V. \
        return ret;% i8 }+ Z2 i7 d2 @) s
}
# p1 O; o1 t/ T' t; R' i/ f+ R( L
4 c4 A& w, _# V, t$ `9 V+ v7 Istatic void __exit led_platform_exit(void)( R/ Z* C% {  i+ k) m3 @
{6 W+ ]) [% f! G; Y4 s' u0 w
        platform_device_unregister(&da850_evm_tl_leds_device);
8 N! d. ~! x- R, v6 S" h" \2 M
& I4 I1 J) V. @: G. K        printk(KERN_INFO "LED unregister!\n");; A: ?2 r' j) O, _0 ~
}
- v. f: X. m1 [' _( t
1 y0 J3 b1 R3 Z8 n) A$ Bmodule_init(led_platform_init);! K, J5 ]$ K/ O6 F
module_exit(led_platform_exit);
1 n! {/ {3 [: |2 Z& z4 @$ v/ H5 L1 B+ r- ~$ A/ J
MODULE_DESCRIPTION("Led platform driver");- G3 b! d/ k, q2 e
MODULE_AUTHOR("Tronlong");5 t& o! p. @. t/ n& m; D' e/ a
MODULE_LICENSE("GPL");6 O! H4 }6 ^/ i% E; j" L' D* A2 \) J
/ ?; o8 V& G" x! G2 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 00:35 , Processed in 0.037628 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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