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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 w& L: i0 e. \#include <linux/init.h>
6 ^$ M# Q& x' ?#include <linux/module.h>
( I3 t6 X$ E6 j8 ]8 q; h" @) c#include <linux/kernel.h>
$ J! W7 c. U1 V, e6 {3 O' X  S+ u#include <linux/types.h>+ ]3 l2 l$ m. l; \
#include <linux/gpio.h>
/ A& J" h' l7 L. Z/ I, l#include <linux/leds.h>( [5 C2 Q. ~( X. l# X
#include <linux/platform_device.h>
( L# |1 D# Z- R; i4 M& L# r
, p0 W) Q. k- t7 j#include <asm/mach-types.h>3 J5 e& Y; p' z+ ]& R5 S& I9 @
#include <asm/mach/arch.h>
! I, ~; D: V) i: \0 T6 ^#include <mach/da8xx.h># A2 H- `5 L, ?; X
#include <mach/mux.h>
0 f. ~  R/ j) k) S' g: M$ Q/ g; w' H% f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( K7 K9 U; ]  v1 O4 y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! J) L/ N' ~& O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# x  J: h, v" k# v& K7 s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 T( A4 f/ C. ]
; C. c! F) @: G* t6 V
/* assign the tl som board LED-GPIOs*/' i7 [2 g* G* l
static const short da850_evm_tl_user_led_pins[] = {3 x1 I" @# ?4 o4 `
        /* These pins are definition at <mach/mux.h> file */
2 ~* H2 T) c3 r0 @$ b4 W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, `( `) M2 m1 v5 V
        -1, Y0 E5 ~/ G  y2 j
};$ Y+ @5 Z5 b5 {. v' W% n  w0 `& s# [- G
5 @5 k2 j% N9 ^3 G7 r
static struct gpio_led da850_evm_tl_leds[] = {- B3 Z8 d% |! D# w/ {8 S
        {2 v& a- l2 c& ]6 h
                .active_low = 0,( W/ E+ r* G0 }7 }* q* |
                .gpio = DA850_USER_LED0,( ~8 S* V0 v2 {1 }, ^1 h9 G+ c; X5 ^
                .name = "user_led0",0 {$ z2 k1 a+ k0 O( k# m0 e3 j8 u
                .default_trigger = "default-on",
3 P5 G8 g7 p0 B& N5 Z1 [" Q: R        },
1 ]% E9 R- ~  U% I; o2 r5 F        {8 M8 Z' T6 i0 e# C* R* u
                .active_low = 0,
0 R  C2 F# W1 E0 f1 Y6 P) J3 ?$ d* b                .gpio = DA850_USER_LED1,
! H' f( C% m4 a4 H/ F                .name = "user_led1",
& m; ~5 ~+ i( A& `8 q3 P( V                .default_trigger = "default-on",1 Z1 d" B5 w4 N2 R
        },
, t5 `8 L, o, A7 Q" }9 c        {  {! H5 Y8 s) I* R. T4 `- n( u
                .active_low = 0,
8 m$ x- [1 e) A+ R- s: D% {, ?                .gpio = DA850_USER_LED2,% @8 ?# L1 ^7 i
                .name = "user_led2",! H( H7 T+ A+ b8 F( e3 G8 D: }, N7 ]
                .default_trigger = "default-on",
7 g' Y! e" E; M3 m3 K$ B/ M/ V        },4 q* p' Y' v6 \: v
        {% t5 m( Q0 d9 K1 H
                .active_low = 0,% y: O! A5 N& t
                .gpio = DA850_USER_LED3,4 \- N5 D# E$ r* P; l  I: t9 H
                .name = "user_led3"," V3 c4 [- Z7 k3 R! G
                .default_trigger = "default-on",# k) a7 ~; |$ Y, z5 }
        },
# p) ^* X4 u9 \" a, B0 U8 T1 p' u};* p" u0 K& f8 s1 d3 J, V; P
5 q# ]4 E0 _8 s, Q$ i- V" {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 l: u7 y/ y  m/ M1 C
        .leds = da850_evm_tl_leds,, |7 H: k* l2 a0 T+ n3 f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 |( d0 A: p, r* t};! ~! R5 x' R: f, a7 p

8 |- _% R, K1 g" ?( H4 sstatic void led_dev_release(struct device *dev)
7 z3 {) e2 t; ]1 b) `{
- A3 {' \, u& X9 E; |' T0 ~- y9 }; ]2 t* V};+ z( c: e/ Q( M$ r5 v! O. q

! s- Y& S  M/ y; C/ S! A! j9 ustatic struct platform_device da850_evm_tl_leds_device = {
8 P3 }  R) d' Y( L  ]$ q* b# ~        .name                = "leds-gpio",
2 x# L) \; j9 P/ k  q        .id                = 1,. [1 V" _  }" H# D+ ]4 o
        .dev = {+ u$ r9 I# l- S
                .platform_data = &da850_evm_tl_leds_pdata,
$ o2 F1 G8 r: y2 Q6 Y) R                .release = led_dev_release,
- Q# X' m5 t/ m/ V, z        }
/ E9 c$ Z/ r  L/ G2 F3 c! y};
) X$ t. I, ~% o4 `5 @* b* v' B- {9 N3 K1 U, E- P$ e
static int __init led_platform_init(void)
) T1 B* b! k, R{
- @8 T4 i% }& s9 r) `1 q        int ret;
8 K- C( n# s6 E3 H% U( L  g#if 0% P" W7 x7 l* O. d% B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 A% s+ F+ u4 h        if (ret)
8 b2 Y2 K* s0 N( \, r  {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; Y# I# D7 t! t- a                                "%d\n", ret);" V6 M6 Z  m( L8 l7 B, J
#endif8 M0 a- ^$ U( N! o5 g2 P. `1 {
        ret = platform_device_register(&da850_evm_tl_leds_device);) j4 ?7 @. N" T
        if (ret). }! u' R+ z$ o" ]" p3 x$ v% G
                pr_warning("Could not register som GPIO expander LEDS");
  B: W. T- K$ b  c        else
# t% W; p5 R4 H1 E                printk(KERN_INFO "LED register sucessful!\n");; u0 m( h9 L4 P0 X* P/ `# I
6 u0 ?, l# o" e& h" H
        return ret;9 G* f, f6 n" _' l, S) K
}9 |5 p) M3 W" v) Z* m4 S0 D  q8 ^8 p: r
- p6 Y/ F9 [" t8 O% C
static void __exit led_platform_exit(void)7 C) Y( m" F1 T# W- k
{
, k2 P+ N. M0 u: ]        platform_device_unregister(&da850_evm_tl_leds_device);  s8 I% n+ h7 D; F

& j+ }$ f+ [! T: Z. p$ B        printk(KERN_INFO "LED unregister!\n");, n# M7 R. v. u% q( \5 a
}
+ Q5 a3 v- B  {2 \0 m& f- }% I+ n2 r6 r
module_init(led_platform_init);5 O: O6 z/ l. T3 I
module_exit(led_platform_exit);
+ D7 ^, @( P# B( ~
- i9 b9 Z5 h% H. I, [$ K& cMODULE_DESCRIPTION("Led platform driver");
9 j, M* L' Z( s: Z7 `MODULE_AUTHOR("Tronlong");
5 Q/ {, g2 V1 u1 O$ MMODULE_LICENSE("GPL");4 S: z+ H. w' h2 q& I

- |5 k$ Z8 B* J  p$ M8 J& C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 03:00 , Processed in 0.039302 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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