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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ d! C5 @  @: Z: s  @3 I4 q- C) M; {
#include <linux/init.h>; a; q  o* V! ^  o
#include <linux/module.h>' M, u) N1 r9 x% m9 s0 Q
#include <linux/kernel.h>- V! e, q7 ~) t0 D: C% U
#include <linux/types.h>
/ |8 X, X2 m+ k# Q, q4 g( v7 t#include <linux/gpio.h>
, c3 H$ t& g. Y* y- V& \#include <linux/leds.h>
( V2 s/ T/ s. k* \* B9 d5 T3 d#include <linux/platform_device.h>
/ ?( E; R# h4 y$ C$ H+ b' F. w
" y% c7 e5 m& w3 F+ T#include <asm/mach-types.h>! O1 n- v0 R3 A8 V3 R9 p& u
#include <asm/mach/arch.h>
. C) K2 F4 g5 C2 ]) L#include <mach/da8xx.h>+ L% t, g, [7 `! V% I% V+ d
#include <mach/mux.h>+ m9 W6 @% Q, n6 R9 l! |

$ N5 y! f7 O' C7 t( G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  F+ ~( J5 q* i
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) n1 f1 S- q9 ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 `! ^. m3 Y( }$ Z8 ?: P( I* P1 B$ F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 m4 `$ Q0 O5 V7 c2 S: d" H2 l# n5 c% ~( k. ~/ @
/* assign the tl som board LED-GPIOs*/
. g# |0 w& h, z; W& f' vstatic const short da850_evm_tl_user_led_pins[] = {
8 K# W7 v/ B# j% H* X8 [% j9 Z" V        /* These pins are definition at <mach/mux.h> file */; m3 g! d+ P, ^; N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; A, ~6 Q6 b3 C, f; S3 `        -1
* j3 O  n" N7 G2 L+ {8 U7 F};
  v7 p& w; V; K6 U2 r$ q1 S6 s5 P' v" k  _. x5 q$ H/ C0 x
static struct gpio_led da850_evm_tl_leds[] = {
! Y2 U# h6 b0 J1 ^/ L; U4 _        {
2 M; m, W1 V0 w; k+ j                .active_low = 0," d" N) x9 Z. G: J$ o' H8 W
                .gpio = DA850_USER_LED0,
5 T$ f/ _9 J+ v' J3 @4 ~; N$ @- I                .name = "user_led0",2 B, U' j8 c5 l
                .default_trigger = "default-on",# M' m2 g* ?( Q
        },; d2 m" f/ g3 R& B" Q  ?# b
        {
; p* c: C8 ^+ h6 x- |3 K                .active_low = 0,
7 w; b7 L# ~- y) [5 S                .gpio = DA850_USER_LED1,
4 R: ^. W; T1 i4 [. K! h                .name = "user_led1",4 Q+ O9 @9 ]- q: J  f
                .default_trigger = "default-on",6 @4 I7 o) @/ V- n0 z
        },
  h4 U. q# \+ D* n, n: \        {
: a9 [0 }+ D+ W) E+ @                .active_low = 0,
; c2 U) e% m' ]( c, a  \' _  m                .gpio = DA850_USER_LED2,
& O* U6 Z: M7 C! t" {- Z  ^                .name = "user_led2",5 y7 Z; ^' c. H+ _) \# s. h
                .default_trigger = "default-on",
6 Q# M( u1 M* C; ^3 C3 g6 _        },
) o- ]& i8 I# u! E; M( ^# I        {
, B+ S: f6 s' r  U                .active_low = 0,
1 h- I5 K1 y2 V- o- X                .gpio = DA850_USER_LED3,
- t' S4 s/ g, a5 `; }/ }                .name = "user_led3",) }4 W% z. J7 W- g5 y  `
                .default_trigger = "default-on",& E4 I+ u" M9 u2 Z" l3 J
        },
) \+ `# q8 ?5 E5 ~& d};
- G' A9 e2 k. M& M% A; q' E3 x2 V: A& `  D- B  d: R9 i: m% O3 c) R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; Y, b5 u" W& L
        .leds = da850_evm_tl_leds,
1 e9 I" a3 ~! q! ~4 u% ^! V6 p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' v3 v' ~3 u! {. }8 l};
5 [6 ?, @3 T$ y/ I3 A  w
0 R/ _5 g: a& H( p) v) N9 A8 fstatic void led_dev_release(struct device *dev)
& k- |" |* t0 O8 P{
0 @, C! ^$ C0 ~, F8 @7 `};
7 j4 ?2 C; D$ @: [" _3 [; ^8 {, @1 U  K5 T, A% ?0 S. |  v
static struct platform_device da850_evm_tl_leds_device = {0 f7 c/ p8 j' m
        .name                = "leds-gpio",. e+ b" H2 v3 p+ r% l
        .id                = 1,
4 H7 N5 D1 x5 c0 q        .dev = {
2 m2 H& z: L0 x) p                .platform_data = &da850_evm_tl_leds_pdata,( z9 ?: X% p$ H. X' _
                .release = led_dev_release,& ]3 K8 g  z& f8 m, O5 H
        }
& F: m. E! d0 e; z1 N  A1 Q# ~};- E2 u7 d* g* ?

$ O. T# W/ |! [3 z: m* C! Lstatic int __init led_platform_init(void): o: c( {; V6 I0 L" {" p! k
{% |( n# y' u, @, {, t$ Z( x; P
        int ret;7 |, [3 K( U! S/ \( Q
#if 0# r6 D8 p2 j1 D& p9 y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, V; G9 ?) s) B! T4 y
        if (ret)
9 P% ?( H$ r7 P4 ?2 w1 U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) y7 w3 h9 h7 W                                "%d\n", ret);
" ^5 f! I5 ?4 R, W# j#endif
9 i( R) B- l" U1 t: g; w9 f: {        ret = platform_device_register(&da850_evm_tl_leds_device);
% c$ t7 e; p" D        if (ret)3 u: o' A. J5 B  f! {3 ]1 P
                pr_warning("Could not register som GPIO expander LEDS");. Z$ w6 T7 [1 k
        else8 Y6 [5 Z5 h  |
                printk(KERN_INFO "LED register sucessful!\n");. m9 E: _: @1 H) i0 A1 i- e2 C! o

7 r9 ?8 h; u$ V) s        return ret;9 h  r) I: V3 P
}
* [& Q6 x' `& l9 B
* ]" k( o  U' m8 B! n. r6 \static void __exit led_platform_exit(void)
* e/ h# m- l% W$ C; f{
  t# c8 i  y$ o3 f7 k+ P5 ^) k' t        platform_device_unregister(&da850_evm_tl_leds_device);
* s& T* T$ i7 R5 x, [+ T7 v2 w( i3 v6 q
        printk(KERN_INFO "LED unregister!\n");+ R6 A: M. Y: G& s- k. i, o
}
/ n' f* l1 }) B' S' o, Q: P9 u& v9 V( h3 V, W" K
module_init(led_platform_init);8 m, y* A# k( J# e' u
module_exit(led_platform_exit);3 f1 E' F7 d- l2 f# t
9 `8 d+ O& }( G
MODULE_DESCRIPTION("Led platform driver");
$ e* ]* w' c7 Y, D! R. a. wMODULE_AUTHOR("Tronlong");
" t9 P% h8 e) Q" x+ k0 \& rMODULE_LICENSE("GPL");
  A7 w0 `# t7 |3 N) i6 U* D6 i0 A5 `( `; ?2 Q) b4 p  r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 04:18 , Processed in 0.039709 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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