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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  I& E' k6 b8 F) [- o. M( z
#include <linux/init.h>) L4 a. b% O: u1 a
#include <linux/module.h>
0 n7 T: V) F4 {+ y) \#include <linux/kernel.h>
. I6 e& M& R3 W5 p#include <linux/types.h>9 S0 H7 `. e+ c. V& r. @
#include <linux/gpio.h>
) l1 T2 W& C. a. T: V# }0 |: Z0 M#include <linux/leds.h>9 p* Z% E' [$ r# \9 u
#include <linux/platform_device.h>. M' X2 P9 P/ e$ J6 s) f9 x

- W$ R2 w+ ^7 ?$ |7 g4 n' g#include <asm/mach-types.h>
& Y( D) i+ Q. E#include <asm/mach/arch.h>! g$ z4 E  a0 A+ t0 I5 Y) s
#include <mach/da8xx.h>
, e4 b8 W1 ~# L. {7 a9 h" D: M4 Y#include <mach/mux.h>' {/ ?1 M- k: O# E8 [1 T( C3 N' i. y

- R" L) W4 [+ k3 r5 |* v6 v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ t4 X+ D# Q  Z0 y" A% S
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- S6 q6 R" X4 z# N, P3 j2 D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ X. q' J: X  h2 Q7 ^, x5 E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 L, o( J# S6 G& {  E8 \) y) V# L

& _3 r+ U* [1 T8 \4 `6 t: j/* assign the tl som board LED-GPIOs*/$ t& V( W. ]( E+ y. R* w
static const short da850_evm_tl_user_led_pins[] = {
  {9 I. B/ \6 a" @1 x8 Y        /* These pins are definition at <mach/mux.h> file */4 ~8 C0 V# m) z4 J0 ?- P0 Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* A7 h# w1 P! Y/ p3 t6 B
        -1
1 c0 r' t3 n. F" ^, B* O, N5 Y};1 {; o8 x" X6 P$ K

$ X' V! k$ p9 W" \static struct gpio_led da850_evm_tl_leds[] = {$ r4 P# e% V& X, ^* a3 y4 G
        {8 _8 T1 W# S8 F
                .active_low = 0,0 z$ a" y, g* t- ^  _
                .gpio = DA850_USER_LED0,
5 }: x) ]* E& q5 F$ I) Z5 J                .name = "user_led0",
: c5 k4 B( ?) ^8 ~) S+ m+ N                .default_trigger = "default-on",, V% y7 L( c  a
        },9 ]8 ?1 t" o2 Q' b( X( S; R6 n
        {
3 l, l1 s  V0 J                .active_low = 0,
. `1 N3 K3 Y+ x% H  {' L4 L8 }' y                .gpio = DA850_USER_LED1,
! v& E# F1 v2 z% x0 `2 K                .name = "user_led1",
( D" u0 C: C( P. ^" f                .default_trigger = "default-on",
5 v; d7 g, r$ K. f' Q        },9 L8 [* X/ B* M% c" p" J/ x
        {
9 k8 @* u2 ^) ^/ Z                .active_low = 0,
; N# _% H" \  R+ x                .gpio = DA850_USER_LED2,/ J$ m3 F  u  v4 c: L
                .name = "user_led2",1 V! w' N9 R- O9 s
                .default_trigger = "default-on",
* e0 O  ?9 f: [8 }' |/ }4 J  _6 M        },
' n7 g. f( M" _        {
3 v+ v' k$ o7 i. Q                .active_low = 0,. f7 o% y4 v( A9 p$ W1 J' q7 [
                .gpio = DA850_USER_LED3,
' f, R8 y7 v- ^* R' E0 U                .name = "user_led3",5 X+ S, W* J" z, J) e" Y
                .default_trigger = "default-on",- F0 W, {6 z7 I) S( `0 p' L: z
        },
4 m* v+ R$ U& r};, m1 U3 q/ `& {9 s
- O( y9 `8 c8 I2 k+ h, W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 Q/ ]! {7 `6 E4 E' L        .leds = da850_evm_tl_leds,/ v% Y: p8 F% M3 j- |5 e  R+ u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# v$ K' K( S. F- `
};
" z( Q' @3 W8 U8 W5 ]. t
5 u/ B4 X4 i( X% t) Ystatic void led_dev_release(struct device *dev)
6 Z8 w* O$ o- g3 L! ]{
2 L1 Z- y5 I! f1 c7 b, r( `( U  [};
# k) R, @! ~3 L# E* E, M. v: M
0 r5 l, r1 K6 B/ Rstatic struct platform_device da850_evm_tl_leds_device = {2 v7 i3 I' v4 H5 R9 M: o, R
        .name                = "leds-gpio",; h9 U  x' L/ d; A
        .id                = 1,$ S7 t1 Y* s* G9 i
        .dev = {2 _$ K! A' P2 Q! w. d3 @# }
                .platform_data = &da850_evm_tl_leds_pdata,
+ f% A  C: m/ o1 n1 z( M( f: W                .release = led_dev_release,
3 k1 a/ L2 E# J4 n        }% {1 k5 i7 ^' H1 e6 Z5 |
};
3 E) a/ x& L3 P4 E2 e& D8 ?* }6 |
static int __init led_platform_init(void)2 c, J3 z0 b3 [5 Y. w
{
6 x- D) j( ?: V# S# R5 W8 X* k        int ret;
- _& Z. V# H1 h) i: I1 C#if 04 ]8 X1 b4 N& q% u/ p5 `$ P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 ]# _# F* K  w; r
        if (ret)
; O1 Y# W- c+ Q$ Y2 K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. {9 w, z& ^$ y6 p6 p                                "%d\n", ret);
( ?) N% N# s6 Z. ^% A7 J5 }7 i: }0 R$ S#endif5 \0 k0 i2 S+ T; k9 E
        ret = platform_device_register(&da850_evm_tl_leds_device);( A1 m9 {. e# R/ n7 F  K
        if (ret)
7 f) J4 k7 n$ D: L& Y1 T3 S                pr_warning("Could not register som GPIO expander LEDS");
# ^2 c$ m1 x: v3 i8 l7 l        else
$ R. `5 [6 [$ y" M- i                printk(KERN_INFO "LED register sucessful!\n");
" X, X$ V( Q) i
: l# Q9 \! _/ {* x& P% \        return ret;! }/ T; p# E6 L' _
}) s4 }  Q, X& n, r' ?4 i' X# Y/ D
$ g, H: P9 e; t$ ^3 U/ }4 W
static void __exit led_platform_exit(void)9 V, h2 X1 I/ y: V2 \
{
8 T1 }& j/ Y# D        platform_device_unregister(&da850_evm_tl_leds_device);
0 d/ {0 J4 T4 x
3 z4 @1 r% \$ ^7 N6 W        printk(KERN_INFO "LED unregister!\n");7 B+ D* `0 `) O4 u' p5 d: {
}( k2 ~! H& b1 [# h: M6 M

) Z' n9 L$ j0 f/ I. ]# e: w, kmodule_init(led_platform_init);  m( Z; q/ A+ T5 X- A
module_exit(led_platform_exit);9 I. u) N$ o8 a* b! L
; r2 D6 R* S& `8 l" M
MODULE_DESCRIPTION("Led platform driver");
( D# B- ]1 B: nMODULE_AUTHOR("Tronlong");( A. {; w4 b1 q% Z
MODULE_LICENSE("GPL");
+ q+ }/ W9 h* N" k( B" T2 j( N# X, @+ ]& n. E" h) L& g* |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-26 17:39 , Processed in 0.040430 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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