程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 J3 D* F1 d$ X+ b* t0 w6 [) f% g#include <linux/init.h>/ t7 K6 t8 X/ F. o5 q; D2 t% R- S
#include <linux/module.h>5 C5 y, x# X) K# L5 t8 S
#include <linux/kernel.h>
' k5 _0 C& O$ ], N8 k% U6 a#include <linux/types.h>* a" u9 O$ @8 n( v, l* \* q0 x( i
#include <linux/gpio.h>
6 s4 l5 n4 C% O( L#include <linux/leds.h>1 b+ w5 d9 A$ t
#include <linux/platform_device.h>+ p: Q7 H) f) e2 X

- x: \* k1 j1 `) S#include <asm/mach-types.h>& F$ f& Z+ V- f) c- y# p# X# \$ d
#include <asm/mach/arch.h>$ p' l  r+ d4 n5 E: y
#include <mach/da8xx.h>
! n4 V! q; R* L  z% M#include <mach/mux.h># _! h' }* ]. m3 {

* u  f$ M) I6 D. @, q$ X5 K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; U4 I/ F& l' k2 [#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 y$ t6 u4 A# ?: ~$ O! r2 ]#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 Q8 j0 u' A, ^$ ~% j% ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ k* r3 j# r3 E+ p8 a; g+ Z
3 g- l3 j  |1 c; a( l2 r9 V3 o/* assign the tl som board LED-GPIOs*// c: R* T& \1 {# p% J
static const short da850_evm_tl_user_led_pins[] = {
2 R/ s- g3 d" X, _) h4 S# B: h$ G        /* These pins are definition at <mach/mux.h> file */# J/ p1 E. Y9 S# H! y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 [% m/ r* v( i$ [# O9 n* |/ {        -1
$ W7 z0 b( S6 t. Q};
! q9 g: N8 s+ m: U8 v! n: z( T  X; Y# u
static struct gpio_led da850_evm_tl_leds[] = {7 G- R) a; u1 w2 ~, Z! F
        {
$ s4 m8 q2 a, F                .active_low = 0,
  r2 H+ i& Q5 K& S                .gpio = DA850_USER_LED0,( ?- A* @4 |" g4 Y2 @/ n
                .name = "user_led0",, B4 }2 K+ a' ?7 C- Q. q6 c
                .default_trigger = "default-on",0 m9 u7 ~3 K$ C/ i5 y3 F  Y
        },3 p( G# I3 `% t  E8 N0 S2 F" t3 A
        {
* z( O& a5 M/ b; A                .active_low = 0,
$ Q) x9 r& l5 G- `7 D9 N                .gpio = DA850_USER_LED1,
+ x! p7 O* `3 a7 j' n                .name = "user_led1",& d. b7 V$ @: ~4 Z* L/ }
                .default_trigger = "default-on",# r7 o- F. T* K& ]/ F% J
        },
0 w9 @( s6 Z% A9 l( L4 O  q        {" G( r/ m( _0 d' t
                .active_low = 0,
% m& K8 T: z+ e  }: X                .gpio = DA850_USER_LED2,/ `& x4 H; d% h% ?
                .name = "user_led2",* |9 E+ \+ G) H. y1 z
                .default_trigger = "default-on",
0 E& x5 S$ P5 z3 Z        },
; g8 U2 D, o: K5 y: `+ J* a        {
5 {% T' Y9 l  l1 ?! V( [0 I                .active_low = 0,1 T0 d7 F: _6 O0 g2 z
                .gpio = DA850_USER_LED3,# ^8 Y/ L; c- R( K  Z$ i2 u+ t
                .name = "user_led3",: K6 W6 F8 e; P' t( n* F# x  x
                .default_trigger = "default-on",
1 ]$ [9 |1 u( P! J        },
1 L1 n/ F/ H% }};
" M; I& o, q, |6 F" D1 t) k  E& u
. F3 q9 Z* k% s3 {% _0 f7 astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, W. a2 i0 h' I, g9 D% l; G
        .leds = da850_evm_tl_leds,. N* E; O# X, a9 Q# |4 {! C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# i; U. Y3 V8 t" Q0 |8 {
};4 y- |2 n9 ]" }% N2 a, E
# Y2 C' q" S5 [6 m# f& l" f0 ?
static void led_dev_release(struct device *dev)
3 |: V) s5 c; X9 {& N5 Z$ {$ E{
. P! C9 @$ _/ v* J& C1 b: D};
1 w  ?0 l6 t4 U% R
/ ?+ i; t2 ?* t+ A% Pstatic struct platform_device da850_evm_tl_leds_device = {
- U/ Z- q# T' ]4 B4 @0 ^" H( n4 O# q        .name                = "leds-gpio",
8 U/ |) y- @# P4 P0 C        .id                = 1,
  q  f& E% F1 C( T" f        .dev = {
" b- `2 g0 T6 j" e, {                .platform_data = &da850_evm_tl_leds_pdata,
3 A- ~1 u% }( ?$ Z. S7 _' b1 n/ U                .release = led_dev_release,! q- @; }  H; {; d3 T
        }
6 M% r, O& T  w! F  F# m6 v};0 W% D8 K) T2 E0 z( B5 G" H

9 ?7 [7 L, o9 y/ ostatic int __init led_platform_init(void)
8 h: z) r" r3 O. v{
4 D  d2 t1 p7 \4 w: r        int ret;* M9 ~! l  X' k: K6 N# o
#if 04 ~: o1 e3 ]. E* y8 M" `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' `4 @  q) f$ M. m7 o) P
        if (ret)4 N/ t% }. p& Y$ h! x. ]" @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 Y& ]8 T6 T9 r/ Q- }
                                "%d\n", ret);
4 m! P: A) K& q1 ^9 p: l0 N  G. g#endif
5 l6 \9 [* t0 b& o/ _        ret = platform_device_register(&da850_evm_tl_leds_device);% c) z! R7 F4 w1 d
        if (ret)1 l2 b9 y7 m, H6 T
                pr_warning("Could not register som GPIO expander LEDS");. G" F, A& w# l0 j3 K8 ~
        else
4 T4 Z" @4 l+ `. G; Z9 [) I4 }                printk(KERN_INFO "LED register sucessful!\n");7 Y7 N9 b# H5 V; r9 `
. z8 J* b9 ], X/ ^4 X, B) c
        return ret;% {7 ]# F1 F) A. O9 G" G' @
}
# g& `$ ~* B" N, Y+ U2 b# M8 w# m0 |1 c9 S
static void __exit led_platform_exit(void)
4 `; ]/ }' m2 e+ o{9 S. H: w5 \" Z% T# f. K
        platform_device_unregister(&da850_evm_tl_leds_device);6 X; A7 r- E3 d; s

# L, A$ _* I* n5 o% B) O& k        printk(KERN_INFO "LED unregister!\n");
! {) h3 R+ d* g) `, N# @/ m}
4 `$ a: v/ l/ ~5 o9 P
9 v& S6 q6 f/ V3 Ymodule_init(led_platform_init);$ A% `) i0 v+ D' D( L. s. A. [7 s
module_exit(led_platform_exit);
. K% X' H; D+ o7 `/ x7 z. T- M5 q
6 \: g6 L2 U3 c  x9 iMODULE_DESCRIPTION("Led platform driver");) A$ I" m. U7 A" P
MODULE_AUTHOR("Tronlong");
! ^% ]; L( H0 J! {& w9 ^MODULE_LICENSE("GPL");
: C( P2 n+ |. M, R. ?5 q: G- [( ~) ?6 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 16:40 , Processed in 0.038063 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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