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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- Q0 y6 J! Q$ D# }  R
#include <linux/init.h>
$ Z6 a" I" E  ]" ^# e6 r* R+ ^#include <linux/module.h>
6 _! g1 E/ [/ [2 ]#include <linux/kernel.h>5 g  H2 X/ k4 E! `$ W
#include <linux/types.h>9 D# K- L1 E( ^% q* V# }
#include <linux/gpio.h>9 g  h3 S& j  h! a5 ]& F! t6 [
#include <linux/leds.h>; H/ x( c2 m. ~
#include <linux/platform_device.h>! M; m0 i! C) S  Z4 E
" Y4 s  O' W/ [
#include <asm/mach-types.h>
# R! _+ d3 u1 \4 i2 T+ ^. T#include <asm/mach/arch.h>
8 \. j/ N  t$ Z" N# b#include <mach/da8xx.h>( U+ F. e. t( g) X6 `' V
#include <mach/mux.h>
5 _2 c: S0 z, T- K4 Y2 j8 Z# v# j- S0 _: p# T0 s! K
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 N6 W9 i% p  L( Q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* n1 H! c9 \+ x+ U0 M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 Y& H, U% B% B, d# q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ j) G* n5 W1 w
1 G% l) E5 Q/ }, ~" T9 q* B/* assign the tl som board LED-GPIOs*/
$ L/ T1 J( d6 {- j# ustatic const short da850_evm_tl_user_led_pins[] = {
$ r8 I# w$ F1 x, M! Y" S7 J        /* These pins are definition at <mach/mux.h> file */
( G  ]2 Q( Q5 T1 F1 ~7 a: c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, N: R9 i. _* q, S8 Q' w6 o        -1. D& w7 C0 S( O8 k# M$ A4 o
};
0 z2 d6 }) b& T; ^! @' T" f6 M& ^( u1 b- ^8 T( ?* r
static struct gpio_led da850_evm_tl_leds[] = {1 n  i) d9 K% `" H
        {
0 M5 v. I5 f7 j- ]                .active_low = 0,4 _( y7 B* j8 s1 p* A
                .gpio = DA850_USER_LED0,! ]* ~- f. Q8 l, h( D! q/ Y
                .name = "user_led0",
$ r7 ]  s' W. K5 Q6 w3 m                .default_trigger = "default-on",
. G. }+ d: d0 ]+ s        },$ C6 e! r, e. ?8 Y. ^' L
        {
5 E' D1 r$ N- U8 z8 I; q                .active_low = 0,
: V3 D0 M: g' s- L3 \                .gpio = DA850_USER_LED1,! b4 V, M% N+ N
                .name = "user_led1",
* q) m9 B& H; v! l! b) I$ z# ~                .default_trigger = "default-on"," m5 O4 N. M  r
        },( q/ V' v/ b6 }& g" d
        {3 j& Q: G# d# V8 e* O
                .active_low = 0,
2 j/ r! t+ P- U7 R4 m1 K                .gpio = DA850_USER_LED2,; Z5 B- [4 j$ e. l4 Q
                .name = "user_led2",
4 j+ }; a' S8 ~% Q! Z6 b                .default_trigger = "default-on",: x/ z* G$ D, ]. q: C
        },
; i, k3 S8 A- R1 }& _! O. }' L        {4 v( J9 r6 l) I
                .active_low = 0,
  `  S+ }" c% W7 |, u                .gpio = DA850_USER_LED3,
- v8 @& o' z7 k: M, V# [1 p                .name = "user_led3",6 M7 T/ q! Q) q0 r9 E# \
                .default_trigger = "default-on",, ?! l, V+ S. a8 q- X/ j$ v
        },
0 v2 P: ~6 x4 U9 _};
9 Q6 o$ E1 z0 `: z) b8 a3 [) A1 n3 I: w: T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- v" I' h% z' R. b9 U$ t
        .leds = da850_evm_tl_leds,
% _- M- a/ w! I* g: }+ b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 Y9 h5 A- ~9 c/ _% p" A
};1 h( E& X- _0 W' w( \

8 |1 u$ h4 P+ r  J6 `static void led_dev_release(struct device *dev)
6 E1 n. N6 q  `5 k: W$ k{' D: k1 V3 _2 ]7 `3 Y; a8 Z
};# v$ c( X* S/ n

8 N4 ], \# Z& ]0 f( o9 Kstatic struct platform_device da850_evm_tl_leds_device = {
4 N  A6 [! e% u& _  A        .name                = "leds-gpio",, B! ]) \% v: q  F
        .id                = 1,0 n5 l8 J: ^. Y4 G7 a5 Z
        .dev = {
9 C" `* Q+ ?! s" z  U                .platform_data = &da850_evm_tl_leds_pdata,- ~4 B( T1 G* Q/ |- I5 H, b
                .release = led_dev_release,  u2 w+ P- V; o$ I8 K( R; y# C
        }
) X* G. T( d2 I- p0 f$ x};
5 x  `* _/ s' S8 y7 j; r
9 ^( ?, h6 B3 y+ sstatic int __init led_platform_init(void)
' X4 F+ e/ J* o+ ]$ e, D, ~% v0 u8 U* Y{
+ m( o/ z2 Z3 M) b% Z1 O9 S  j        int ret;
, F2 `" I: ~. W: t0 b8 c& O% H#if 0
* s6 [4 z" I6 L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- S8 H! |1 h' ?. `
        if (ret)3 m: P; W% D$ R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# t- G* r8 l& m; C                                "%d\n", ret);0 C7 G0 B  ~( J4 g5 S5 |
#endif1 L8 O, ~" @1 @2 ?. ?
        ret = platform_device_register(&da850_evm_tl_leds_device);3 Q" Y: b/ v2 F; L
        if (ret)  ^" X+ u" K: B* q9 ?7 _+ s( B
                pr_warning("Could not register som GPIO expander LEDS");" `8 \: S+ P: {+ I
        else" g7 z, W' @1 W7 S4 J  U
                printk(KERN_INFO "LED register sucessful!\n");9 A( u$ A6 c7 |0 Q
$ k9 q; c6 Z9 D2 o4 h
        return ret;/ e( ]% ]/ R5 x
}5 K7 c7 n# k. r0 G4 @6 F. D
. v) p; r2 y) J) p/ i8 c
static void __exit led_platform_exit(void)
0 d8 L, @8 t! q) I. X{4 O0 Z% a0 C4 \5 c& S
        platform_device_unregister(&da850_evm_tl_leds_device);: U; y' K# t$ i1 L+ R2 z

5 Y8 U) P9 n6 l) j9 [6 q# S1 u" x        printk(KERN_INFO "LED unregister!\n");
5 Q4 e3 ~# a8 m1 y# N9 p}
9 w) W7 Q' O$ ]! \' B: L- H
7 S/ q9 ^9 d% e3 e9 amodule_init(led_platform_init);9 n8 @/ p+ ^9 I" A4 v, I' Q7 [: [
module_exit(led_platform_exit);/ v! j, q3 b: Z4 t- r5 j8 k6 T# H

# ^2 O; L# q$ O9 C! ~MODULE_DESCRIPTION("Led platform driver");/ A, ]9 [) k* f8 K3 i; c2 f+ {
MODULE_AUTHOR("Tronlong");) C' ~, H5 ~0 d9 h$ I
MODULE_LICENSE("GPL");# c. v3 T* K9 a4 [! i, C

% C3 E$ m2 L( q- x, T' ~$ x2 D7 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 21:13 , Processed in 0.042092 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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