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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% U) F$ k6 [) n. j& T; p0 l% E
#include <linux/init.h>4 v1 F: N; A) B' l0 v
#include <linux/module.h>
5 U3 g8 k. t7 A6 H/ t6 U. ]#include <linux/kernel.h>
9 y  C' Z& J. P/ x4 m#include <linux/types.h>* Q" \6 N. q  B; f4 {% t* X. ]
#include <linux/gpio.h>, {4 Z4 ?4 A4 J! N
#include <linux/leds.h>
1 K8 d0 k9 T" d$ D6 ?: n" \8 e#include <linux/platform_device.h>, Q8 K. P  b$ ^- d# g" G

# L! g/ a: U2 r9 R; Y#include <asm/mach-types.h>
' D& S) y; C. T4 A: t* e#include <asm/mach/arch.h>; j3 ^0 }( J0 o" Q( ]4 E
#include <mach/da8xx.h>3 V/ }8 A8 ?$ C, o- H5 |" ]
#include <mach/mux.h>
# P) Q, Z7 d! P! L  X  y" P8 m9 x" {8 W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' u6 ^: h3 @1 V' Z+ l3 w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ j. g" {' r- f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 q7 c6 l. ~+ B( W  I& ~+ C0 z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ z$ q! u9 q3 q* R; |1 @
: K1 k5 _, M; ?8 {5 X  l0 d- G
/* assign the tl som board LED-GPIOs*/
, _3 p& ]. ?# F! x- L. Cstatic const short da850_evm_tl_user_led_pins[] = {
+ }( t7 i. Y6 c4 h3 I& o( x% q        /* These pins are definition at <mach/mux.h> file */9 p) ~. j# U$ @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 e* @* a: Q% h; h
        -1* ^% ]! t% X% a8 O% D8 A+ T
};5 H- [$ A8 i; P! e, C) }

4 d& s- ?$ ]7 v4 ustatic struct gpio_led da850_evm_tl_leds[] = {
" m7 f: b) ?0 _& L- w        {# c6 `$ \; t+ ]% ~. M% T( A
                .active_low = 0,! ^3 B. u9 b1 @6 H1 C$ d
                .gpio = DA850_USER_LED0,
! R$ z' W' I+ N: e$ T; \                .name = "user_led0",4 B1 k) j- {# j8 g6 z
                .default_trigger = "default-on",
4 ~1 ^! g8 f& A2 R# r/ H        },9 X  X) S# n; t" ?3 e6 I
        {9 T; a2 a6 l% J& T! ]* y$ M
                .active_low = 0,
7 x: K9 E7 p% i( y+ ?                .gpio = DA850_USER_LED1,
3 y+ F; y; n4 c* ^* h- i                .name = "user_led1",
; ]1 ~* c6 i9 r/ K: m                .default_trigger = "default-on",+ B  g6 {0 o8 c4 Y1 v7 h3 Q' H; v
        },4 i9 t' ?' V: w& l$ C
        {0 O' H7 P2 B7 [, S' y
                .active_low = 0,
# M2 }7 O& ~! F                .gpio = DA850_USER_LED2,' I9 C# i2 i0 i% v3 Q* x. n
                .name = "user_led2",* m  \; M, X7 x0 @
                .default_trigger = "default-on",
9 x1 ~& p* c) n3 G5 j: a        },: g5 T# K8 F: d" T% T3 O! v2 Z9 m2 Y
        {8 X! H" d9 H' `
                .active_low = 0,* v( `: {- a; B3 a" v/ x; p
                .gpio = DA850_USER_LED3,
* t- G; p0 C& ?0 t                .name = "user_led3",
% `" L6 H; v/ F9 q  x# x5 O                .default_trigger = "default-on",
) `0 Q4 G- ]8 B/ B* A' S' A6 q# p$ g        },
2 Q% w' F! |- A" a7 Y" x2 s};3 u) o5 I# c, ?. X: s3 O: R- \

0 V/ U+ a# J* }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ t8 ?  i/ g8 h6 T6 b. W" L
        .leds = da850_evm_tl_leds,1 i0 B" `! s" a4 i6 g, A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ B- R# A% S! R& F6 p$ X5 L
};
9 V  i! _4 f" d: O# A# G" h5 A/ U6 D3 I
static void led_dev_release(struct device *dev)
7 ~) D- C- S$ L3 s{" x3 c0 I5 A. c& Q
};
/ Y# I* L4 G- M. r
2 d3 J" [- V9 w0 p. D2 H' @4 L; ostatic struct platform_device da850_evm_tl_leds_device = {: w3 O0 U9 X. p
        .name                = "leds-gpio",4 T4 @* p1 c6 Y; o
        .id                = 1,: A/ q0 t7 ~, o4 L7 x
        .dev = {4 z9 j' @; L0 F$ j2 t
                .platform_data = &da850_evm_tl_leds_pdata,- I3 F+ W" Z- j( h7 e0 c0 W
                .release = led_dev_release,
* o0 N0 _- d$ }- o0 l8 N7 _% l        }; S( q: p/ I4 u
};& Y. H) Z9 Q3 l

  O& W: o% \6 U' gstatic int __init led_platform_init(void)$ J; ^  O8 w9 L( x5 I0 L6 P
{
/ b% `; w- q; F) ^' Q        int ret;
* s" ~2 M  C& @6 ?4 s#if 0; o: R0 W* @3 R: T
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 \- F8 g: A6 i, F
        if (ret)7 L5 j. f0 t8 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) `+ A( x& G0 Z0 O1 O, q                                "%d\n", ret);
9 G  L. i) A; h& k0 {2 _% u, }#endif; G, q3 N7 P. V% v! S4 i
        ret = platform_device_register(&da850_evm_tl_leds_device);; j# m3 I4 W" J) Q$ i5 A
        if (ret)
. H/ C" ^% V3 w                pr_warning("Could not register som GPIO expander LEDS");
) G) e% v% u$ d+ v        else
% \" J' v& R$ P3 Y8 }                printk(KERN_INFO "LED register sucessful!\n");
# |4 b9 w5 @6 L6 S1 a# G9 B. j5 _( T* ?
        return ret;
* p: q. Q6 D0 q: B- j( y}8 l" {% L" |7 ~/ a( ^0 v) h
6 b7 A4 ]# k: P$ E4 G8 S
static void __exit led_platform_exit(void)
& c+ z2 f  d. j8 W; I4 Z{
5 a+ e5 g. g& `# a* w% M* G8 i& _        platform_device_unregister(&da850_evm_tl_leds_device);
, E! v2 Z! |; {- L+ K2 l1 ^1 G3 _9 F6 i
        printk(KERN_INFO "LED unregister!\n");  `7 O: z0 K' Q) M, ]0 J
}1 Y- R* H# T1 k1 q8 e2 E3 d
* M- W1 \- U3 T; Q
module_init(led_platform_init);+ r) ?- n6 i0 h7 E0 M6 ]& N# {# {) D
module_exit(led_platform_exit);
+ n( L  w+ }* k, k2 T- U& f4 ]  p# f, @4 \0 M
MODULE_DESCRIPTION("Led platform driver");
+ ^) _0 q7 [8 Z2 a1 m; ]MODULE_AUTHOR("Tronlong");) t. I' J1 K7 Y( `  P. F& x; ]0 E
MODULE_LICENSE("GPL");. |7 ~# Q. @6 z" H/ u) n! B

: v' Q# B$ g) q& a/ s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 06:34 , Processed in 0.039882 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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