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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, y) F: u( K+ O
#include <linux/init.h>
& q  D# Z: Q4 ]7 z- v  p  R) h#include <linux/module.h>. T( k& ~' w( k- G/ W
#include <linux/kernel.h>
$ ^+ T' q: j# E* F, R9 S! F#include <linux/types.h>: z% _, e' z. O) Y0 X! j4 s
#include <linux/gpio.h>
6 L2 `  s, t. P2 p5 e#include <linux/leds.h>
3 G7 U3 u$ _. n9 P#include <linux/platform_device.h>
7 N9 n$ j  N& \" x/ J& @; e1 G- X; w
#include <asm/mach-types.h>: h: @7 k# \# o) ~. ]
#include <asm/mach/arch.h>) h3 \6 u! K, I6 P
#include <mach/da8xx.h>
( J* Z- O- S. K. P* ^$ U" t  C#include <mach/mux.h>3 h1 l) M# ^2 B8 `& ]$ K( N
! U7 r0 m8 s' w  k2 M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 |' |9 L4 X  _* f/ }7 k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 F, P( J/ @9 O5 K, Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* Q% v7 ]3 v$ K4 L9 e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ i1 H9 X7 W7 ?5 G9 O2 v0 `

/ }9 L8 n+ x. M1 `) S/* assign the tl som board LED-GPIOs*/  p1 ]* b, }; `4 t; }7 `$ s& v
static const short da850_evm_tl_user_led_pins[] = {& ?! R8 q$ _2 [6 e
        /* These pins are definition at <mach/mux.h> file */
2 t+ b9 F+ l8 m3 M* M* P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. X( W# _! z: c; Q# n/ P        -1
/ g. N) m9 G/ p+ k9 n* a8 k};
6 N3 b- U2 I+ j: d: l6 ]5 u; N8 E& k7 K. J/ S. D
static struct gpio_led da850_evm_tl_leds[] = {: f' a" P  j" v! q4 \
        {+ o5 Q% J, M+ L9 e3 X7 b% c
                .active_low = 0,
+ Q- T' `; N9 X  [  [                .gpio = DA850_USER_LED0,: L! I% n( x  J! R9 i0 N, q
                .name = "user_led0",
* x  ?* c* d7 T& D                .default_trigger = "default-on",  O2 D# K3 m; _" o9 a) d) H* g
        },
; R8 N* ~9 I1 `4 _$ h        {
$ l0 j* ~1 F. y  R) k                .active_low = 0,
3 x& K/ W9 e: t                .gpio = DA850_USER_LED1,3 Y5 _; @+ @* w+ [4 ~0 S- `5 o8 O
                .name = "user_led1",
6 X8 w- ]5 [" w# [6 _  G8 g# H; V9 f                .default_trigger = "default-on",+ V! v' I) ]; |' \
        },8 c) m# k2 M) E  m; _& B8 v
        {7 z8 Q- z) C6 M: U, {( X
                .active_low = 0,
- h* z" s- G) |8 Z( {% e+ `; S                .gpio = DA850_USER_LED2,
5 v" I: |( K( w                .name = "user_led2",
$ t7 x0 Y) a; h- s1 o$ l# M) v; u                .default_trigger = "default-on",
" e, i! U, [1 s. K, [        },
: `+ U+ ]: J9 o( z# a) h& j5 s        {& }0 [0 X. j. W  x
                .active_low = 0,$ \0 N8 U2 j; ?# N( x
                .gpio = DA850_USER_LED3,/ b) w, o& @8 U! L/ ]( G- H
                .name = "user_led3",/ r# K& V/ m* l( d; P  V0 g
                .default_trigger = "default-on",
( ?) b: \3 N' K1 C4 R        },$ R$ B; ~: V! o& X0 x+ U. O- q6 S
};
  W5 F  ~4 x, ~: x3 O, {5 D
) v2 W+ Y2 b' N2 U4 q0 d, M! q( y4 fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 u6 @$ w- h1 n4 T$ _. T        .leds = da850_evm_tl_leds," Z2 J. i& p' L' L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, S: C8 h: u5 J/ }3 A  H4 J- A};
# P% \7 k4 }) g* ~7 T# O. Z: |
1 b3 m  g* N' V1 R' Kstatic void led_dev_release(struct device *dev)
5 ^5 ~% K2 w6 u* W7 ^{0 U' v7 L( C( V5 F" Y
};
! _/ B) \3 j* q# q
5 M$ l5 @* Y; c7 I; i, T! O: Pstatic struct platform_device da850_evm_tl_leds_device = {( \! r9 [# j0 ~$ @
        .name                = "leds-gpio",
4 C: f) z/ @, h, @        .id                = 1,, d$ A& K% R' a2 z. A/ o
        .dev = {
. a1 E9 n9 B% G7 O8 R( I                .platform_data = &da850_evm_tl_leds_pdata,
$ [* g! y8 G9 U! L: `. a                .release = led_dev_release,; V) m- n' w" V/ e) h
        }
. l% |/ |  K/ @( |};
3 P8 {& f) [! R) O, J; f! O) k! |' f" N
static int __init led_platform_init(void)
# q! _' T' x" r6 n$ ]: ^" B: h5 J{4 U" h9 B8 a+ [4 `( C8 a- n
        int ret;
' T8 G2 y) M0 m- R3 D: P6 ]: q#if 0
- x( P( B2 L1 H: ?* b* Y5 o2 T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ v" Q/ o8 K5 t# a
        if (ret)
/ e# z4 o: o% Q- v* _( _3 l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": g3 e: ^/ `, v
                                "%d\n", ret);# X! F/ g" G; O1 C) D( h1 I
#endif
# }$ C# }) R* {( V$ R        ret = platform_device_register(&da850_evm_tl_leds_device);' Z/ \6 E& f! x0 y& S, j
        if (ret)
2 n9 c  {1 M; b  k* h  s                pr_warning("Could not register som GPIO expander LEDS");( T0 o; i- Y' j
        else8 E$ X$ |& K9 F. O4 V2 Z, \
                printk(KERN_INFO "LED register sucessful!\n");, Y: ?" R% u& q8 {. c! l

* v* W! }  ^9 k) \, l- F4 @        return ret;2 w( k1 o$ F& w! E
}
/ L  x, Y' ~, s5 b9 v- I* Y% d  d! n" N8 E- O
static void __exit led_platform_exit(void)
% H7 i! [0 R' ^{
1 `& M! y3 v5 j4 ^        platform_device_unregister(&da850_evm_tl_leds_device);& f& i3 x. \) m$ f; k1 B5 L

) O! |7 @% C5 Y: d1 V  D2 v        printk(KERN_INFO "LED unregister!\n");
* T0 E) V2 F/ E- i. ~# ?* m2 d}
, b( T0 ]/ L- P! _; Z+ G# U) F( ^" ]% i' X" S: [
module_init(led_platform_init);! j0 S& I3 K0 h$ m* ~: c7 j
module_exit(led_platform_exit);
$ g) ?: T  t4 V( N! M* A$ ]" L/ y" y- o7 ~
MODULE_DESCRIPTION("Led platform driver");
& E1 `" Q" ]* t- l  l  vMODULE_AUTHOR("Tronlong");* U7 H: |& a& T& q  Y  d
MODULE_LICENSE("GPL");
4 U; o) z4 h$ E. D% m
+ e! ?- q. ]) A6 L- |8 T" d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 02:10 , Processed in 0.046441 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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