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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. M& ]0 m2 m+ e) A3 R+ u#include <linux/init.h>
& [4 f$ @! q$ ^#include <linux/module.h>
% p3 y+ y% o9 M* l: i' d#include <linux/kernel.h>$ ~2 N3 w% A% O. @: J8 X+ r, K4 h# j$ X, V2 G
#include <linux/types.h>7 {3 b# [9 Y% C
#include <linux/gpio.h>: g4 e1 U3 X, @2 B
#include <linux/leds.h>
; J1 W; w: P! ]& _3 J#include <linux/platform_device.h>! b/ u+ i7 z& p9 D9 k
% I6 L, m* Y& O$ J6 E2 ^* [
#include <asm/mach-types.h>" C9 {* V9 |" [+ r# ?1 |
#include <asm/mach/arch.h>6 k" }4 w/ `& `1 S) S" h
#include <mach/da8xx.h>
3 S( x6 a' @4 N4 T. u' e#include <mach/mux.h>* J/ ]) L0 e" K& ]2 h; |

/ x- D7 W( p. H/ t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' o& [" \4 O1 U3 M# \% X" X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); k- e( l2 _6 |6 s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  Z2 v- M" g$ P# ?0 V: T: V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 e7 x* T. c8 |7 O/ M; @5 z
9 h4 d) Q$ G* v; [! e( L/* assign the tl som board LED-GPIOs*/
1 S* L) O/ j3 w! o- Pstatic const short da850_evm_tl_user_led_pins[] = {+ _' \# M, |% ~) c' \! h
        /* These pins are definition at <mach/mux.h> file */. `/ i: G6 Z4 f9 [5 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 x" V9 i( k6 w) V$ q  m        -1! p+ ]( F! c( h+ B2 u
};; U; }' f$ I( l2 ^! r1 Y

2 F+ n/ B" v4 ?) ^- j4 u) jstatic struct gpio_led da850_evm_tl_leds[] = {/ p% a* Q, K; b8 q7 Z9 U
        {
" j! m( |5 q) ]+ x8 s3 B                .active_low = 0,
3 N9 w% _1 Y' h* R# s2 j                .gpio = DA850_USER_LED0,8 @: }# k8 x1 Y: Y1 c0 P
                .name = "user_led0",
2 A2 i9 W; M+ ]/ e. Y                .default_trigger = "default-on",6 f! D  G! r1 {3 Z- O4 ^, e/ R( y
        },
6 `% {8 ^7 a" J$ r1 l+ U2 R9 ~/ z        {
" M2 `. k& n* t: ^                .active_low = 0,! R- s% C) Q9 E( }* [5 v
                .gpio = DA850_USER_LED1,* w2 `  j$ y9 n3 P# I
                .name = "user_led1",
  W+ ?7 e, X4 c* X/ o                .default_trigger = "default-on",
+ A: k* F& w5 t- `( ?6 i! P$ {        },
/ R' U! T" x% r- i! V" j  E        {
' e/ Z4 p& w5 L, P. @/ @  C                .active_low = 0,
" P8 k( a- T# }' V                .gpio = DA850_USER_LED2,& B/ \9 |( S- l0 G1 A8 Q1 k( ]) T
                .name = "user_led2",
, t, s7 o1 Y( y& A( X                .default_trigger = "default-on",
0 q$ o4 r: {& i( |  G3 d        },9 V# D. g& D* u
        {
9 a  |/ A2 D" y3 f2 t4 B7 e2 d                .active_low = 0,$ s9 q/ Y: e. @  t/ [4 ]7 H7 Y; @( F
                .gpio = DA850_USER_LED3,  C' B  ^4 G, P* z  @  T
                .name = "user_led3",8 Q- x5 i' _* K
                .default_trigger = "default-on",+ H  @0 p# M1 _$ s( M0 O. Y
        },, D* A3 C8 B& ~' X  m+ ]
};" F4 c% x+ v0 k& L$ G8 d

  m% q: @8 S$ }! p9 A9 ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 K( ~! r( ~9 n, ]2 l        .leds = da850_evm_tl_leds,
- c/ a. S) f1 L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 h7 u( L' x6 z7 Y
};5 p' f7 {/ ?: [
: z$ Y6 u, ?# @8 i5 U  q% O" k
static void led_dev_release(struct device *dev)/ Z) P! Z% J3 r0 L
{+ B& j# T# y/ C. m) t# a
};
8 D4 F" B0 r+ O, Q
* K* F7 _+ W" U3 Tstatic struct platform_device da850_evm_tl_leds_device = {
) [7 j" d# d$ @, ?( H/ c        .name                = "leds-gpio",
5 ]( F# A. i) u; O        .id                = 1,
6 x2 b" J+ h) f: C5 |- Q5 Z        .dev = {
: t1 V4 |9 V' l  m! L' E: X! F                .platform_data = &da850_evm_tl_leds_pdata,' I0 S$ W, ]0 l' D( Y: v' F
                .release = led_dev_release,
: m+ |; o# W. ?2 @' n        }( _1 K0 ?- D) k. C$ L( D
};
) Z2 R3 O( u1 ]5 X+ R. ^# B9 l5 N) O; Q  s
static int __init led_platform_init(void)
. a/ h! R+ j3 d; J{
/ J5 g) Y: `: f6 {5 e2 X7 a        int ret;
) G3 Z7 P! |7 b#if 08 Z* u' A" U0 y9 X1 H/ l
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! l/ y+ h+ N2 Q2 c
        if (ret)/ k4 [; Q$ t. \8 L1 ^% Y: i. N
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" r5 t* {8 a1 B, R& c! q4 r, |                                "%d\n", ret);
+ i8 G% d! y$ |# c6 ^#endif
0 R9 }+ u$ D9 k        ret = platform_device_register(&da850_evm_tl_leds_device);
9 Z) q* h/ L9 A! z* R7 t6 \3 f        if (ret)! K6 h9 r$ ^! o8 s  F( i+ {
                pr_warning("Could not register som GPIO expander LEDS");
4 x( ^, W4 d7 _        else! l* @' S" a# ]2 m6 b$ u; P
                printk(KERN_INFO "LED register sucessful!\n");" a' x+ U( \1 N( q9 `2 @8 t  Y

2 _/ m( @1 m: e( F        return ret;  E- H% _" A. E- ?
}/ Q  Q$ ~% R. y4 u

" c: c; Q: n* k8 T# m8 x- T' ^static void __exit led_platform_exit(void)9 I7 s2 o) O. ]/ s2 v6 k
{' v# r2 y. v' z( O$ Y: I
        platform_device_unregister(&da850_evm_tl_leds_device);6 O% W+ P( r& q$ f2 a" T* ^# h
5 a0 U9 D$ r. U9 N3 e" O4 A# ~
        printk(KERN_INFO "LED unregister!\n");; P9 D& d! v* n) K1 C, d* V/ c
}
! T: S0 u$ c5 f* r4 p( l' e- Y: n' b' M- c
module_init(led_platform_init);
* v$ I( J) F  ?2 |; ]% cmodule_exit(led_platform_exit);$ }, b2 o9 w$ |4 X
, @6 m. f7 I* v; X
MODULE_DESCRIPTION("Led platform driver");
3 p) u0 Q8 b" W! K/ qMODULE_AUTHOR("Tronlong");& \! B1 n8 K6 P' I& s
MODULE_LICENSE("GPL");/ f2 Y9 U: }$ J! i; ?9 q4 z7 Y3 [
: t, J/ P  w1 {# a/ t- o! q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 14:16 , Processed in 0.040221 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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