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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 t- M! Q* i/ m6 K9 D#include <linux/init.h>
9 ]; f) V3 b* |#include <linux/module.h>7 j) Z) t9 ~: B" P
#include <linux/kernel.h>  F$ x) l" I! K* S! x
#include <linux/types.h>
) x' r* h' \+ s& V( O#include <linux/gpio.h>
. Q3 }$ l' Z; J( I% I2 x. }# h#include <linux/leds.h>6 e, A% f4 ]9 n) f
#include <linux/platform_device.h>+ X! f. ^0 l4 f$ Q, x+ w, s, U. Z7 m

3 g8 G+ L" F; @#include <asm/mach-types.h>5 ?) P+ A- F" V8 ]) ?. l
#include <asm/mach/arch.h>+ x' e% D# |1 G( t- i0 q
#include <mach/da8xx.h>
& r$ X; e( U5 q; k0 h2 L+ O#include <mach/mux.h>( V  z. }9 t, R# Q" b. G+ v7 ]' j% P

2 _! d9 e! \* N- ]+ L+ r#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 n' h# h. J4 L+ w) d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). n' Y2 ~' }* B6 e  n. Z- d
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 ?. z$ y5 U6 v9 n6 Q, s, z* \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! A) O- U0 h7 H/ v
2 o# B8 d7 F+ E, F
/* assign the tl som board LED-GPIOs*/9 v+ \  G& }9 K
static const short da850_evm_tl_user_led_pins[] = {
; g; {5 k' O: x        /* These pins are definition at <mach/mux.h> file */
! i& i) H$ ^8 @5 l5 u3 v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 c# X$ i/ [; B) j. b# A        -1
4 m8 }2 m8 k# y* C+ E+ i! ^};
/ e. P$ g) P) i* k, g- M1 e8 r
8 R! T) c) L( [) a' X) p7 z. \static struct gpio_led da850_evm_tl_leds[] = {( `6 J: L% g) B) P9 A
        {
6 n! W1 c2 y% _  b6 [% \. }+ p( \                .active_low = 0,2 A- b4 C/ @2 d; r" e) {! `- B
                .gpio = DA850_USER_LED0,
/ u  }5 U3 l; D7 O, J; r                .name = "user_led0",
* [, o4 t3 q7 x& x" O' R( S                .default_trigger = "default-on",
4 y6 m, n8 `1 |/ a2 K8 x, P% p  J4 [! P) K- \        },
9 C: X: _% ]) Z' ?5 E$ u        {3 G7 u3 m% C2 E1 ?' F1 L
                .active_low = 0,- U3 x0 |  t) k  U  x
                .gpio = DA850_USER_LED1,7 Q. [4 b' |! K" Q9 h
                .name = "user_led1",
5 L6 q3 G4 L7 f8 F& p                .default_trigger = "default-on",/ z2 c6 N/ l& H7 w: H! ?
        },
$ t; v+ f% I: \. O& @        {
6 n9 N2 y2 k# B) k+ G3 t                .active_low = 0,
0 F1 ~8 k( Y4 H' T                .gpio = DA850_USER_LED2,
& t' I0 f) w0 r                .name = "user_led2",
) K$ c+ Y: ^" z$ Z5 S  h$ f                .default_trigger = "default-on",
- p2 d6 D. c& \7 _$ D% t        },3 X3 j' D4 v, E" z/ X, M
        {# T; g" m" K+ l0 \9 x, }6 y
                .active_low = 0," G, L9 ^* j( G/ K9 b: u4 V) |, U* ?
                .gpio = DA850_USER_LED3,5 a' ?1 }8 m& y; F) J" c) k8 O4 g
                .name = "user_led3",
5 D+ r' X: |8 q2 k; x( j. k! v( n' H8 ~# Y                .default_trigger = "default-on",
$ b- l: L( o2 c4 w. h! x        },8 }" L! o& s# N
};& n- \, {8 R) o9 I
! k- O5 Y  w& |* t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) D( M! [4 E9 B0 m; j' x: g4 @
        .leds = da850_evm_tl_leds,# L& l1 o0 s; Z2 i( k! {# w+ f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- n3 D( U6 L5 b$ U4 i) \5 j9 ~};! g& l% S- a4 {5 n' d

# R& t5 G/ C3 w7 W9 r% E* U) F* Y6 wstatic void led_dev_release(struct device *dev)
# q$ {/ p5 u$ |. ]{
/ T% Q9 _3 o# A9 U& C" q7 s4 e5 |. g};0 B- K: _+ ]1 m* Y

* q( r5 o3 o! d8 J; ?+ lstatic struct platform_device da850_evm_tl_leds_device = {% J6 x9 n: e8 G  o2 d/ k; P8 A
        .name                = "leds-gpio",' f2 A4 Y& f6 u. U' f) M. m
        .id                = 1,7 p; D! Z! ~0 f7 {) ^
        .dev = {" O( `/ d8 X5 m& t# Z. _7 W5 ?  v5 O
                .platform_data = &da850_evm_tl_leds_pdata,; s7 P0 @/ k$ r# g8 T( j
                .release = led_dev_release,
2 r; O& _% E% W* \        }
. h9 ~9 Y$ O: e& C# h};/ o' @3 T! |4 T) R& O& e
! O9 \. e: ]4 h, |6 E) ^7 ^+ v9 t
static int __init led_platform_init(void)
6 Q1 |- D9 k: O{. x( u6 D6 j6 [7 R) `" b* @% T
        int ret;  C7 u% w. c/ d( l$ Q2 \+ {! _
#if 0
& ^8 B  i1 Y3 W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 P/ y& Q1 u9 p0 w$ }7 V3 b
        if (ret)
# f2 V6 }- u) R6 z1 `! v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 ^( i3 N9 [8 e. U4 P. F. u- D
                                "%d\n", ret);
4 ]7 b# t; V1 g6 l6 u#endif
3 n1 n; T1 P* N: R% A7 W4 G        ret = platform_device_register(&da850_evm_tl_leds_device);
7 R7 v+ i; S9 l, X        if (ret)) w; d4 c* w1 |7 Y6 r0 c4 n
                pr_warning("Could not register som GPIO expander LEDS");4 D, G' C; m. F& Z. f
        else
2 J4 A7 I1 A; S, [# E                printk(KERN_INFO "LED register sucessful!\n");
' f) t5 K, G' `) H% r" ~; P& [2 G" x
; H8 f! L7 O% v        return ret;
& y" B5 k3 _9 S% l6 e- l}6 I0 L& y  G- Y

' ~2 q& V, O3 R* v! o- E& i; \static void __exit led_platform_exit(void)5 q0 z$ ~% N( @2 V3 D* X+ `% N0 J2 H
{# \8 [$ H' u, L% W" B! o
        platform_device_unregister(&da850_evm_tl_leds_device);
0 i( v  _& }) L8 D8 g( g* V. ^# u: }* M2 B  [# T$ r  M
        printk(KERN_INFO "LED unregister!\n");0 N9 N5 z8 o& d$ V; g" X
}
4 w! L& e9 h* }6 ^" B& m# {; J9 U& }+ @6 m
module_init(led_platform_init);' d- _; \! E3 c; i" V8 l# V- D6 k
module_exit(led_platform_exit);
: z8 f' K5 Z+ Q2 b9 C9 j3 a  ?  r" @+ F% o; e2 W
MODULE_DESCRIPTION("Led platform driver");( i0 O# K+ x0 n: _
MODULE_AUTHOR("Tronlong");
5 p4 c) y& Q8 r* DMODULE_LICENSE("GPL");
  a+ J# Q% R; n. |# {+ i
" P$ @% _+ s0 v6 [# Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 12:30 , Processed in 0.040200 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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