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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 c1 V0 A. H/ j/ J9 r, d/ v#include <linux/init.h>% u& |2 ^& {# B
#include <linux/module.h>- M$ j3 s$ W, r" F0 z9 P
#include <linux/kernel.h>' q9 o% o% ?6 {" j$ x) z
#include <linux/types.h>
& |  k2 p1 d" V1 R+ D; L#include <linux/gpio.h>- ^6 r. I. _" H8 n
#include <linux/leds.h>/ L% }" E; _$ p& v9 k% ]
#include <linux/platform_device.h>
) L0 {) I, g1 L$ X( B* y
: n* R3 Q. P, [( `#include <asm/mach-types.h>
. B) L5 u1 _1 ?4 p#include <asm/mach/arch.h>
2 I7 S; x: Z/ _* s$ t#include <mach/da8xx.h>! t2 N$ P. L* `
#include <mach/mux.h>( G5 U6 M* y) \. m7 x

' o: p7 K/ c% ?6 w  w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 Q* i* _* }* Q6 J3 ~9 r) \#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: o! A4 R2 M( K- Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) f/ X- b. U0 F#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 j( }3 m) R, P# ?9 q
0 P( s: X" B5 A, {- b/ l- o
/* assign the tl som board LED-GPIOs*/
( ^. F- S) q6 W4 Lstatic const short da850_evm_tl_user_led_pins[] = {
& x/ d, \+ u9 J# F% H        /* These pins are definition at <mach/mux.h> file */- f: h. v. r" D3 w! u% L, I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ `- Y3 p5 R* |. f  |; c, }
        -1/ ]0 V. e  ?+ j3 W: [9 O0 _' g
};# f+ l! F% t9 K& v! ~+ p6 L
% v( z9 r# r, L% W" Y9 l% }! c
static struct gpio_led da850_evm_tl_leds[] = {7 s2 l0 n% ]/ D. N% K+ S
        {
8 u; A/ Z6 u. j' g8 w! T                .active_low = 0,
% `* Z9 ^& N/ F! q0 `. d                .gpio = DA850_USER_LED0,1 X! s/ \1 T5 w- n
                .name = "user_led0",* g8 b7 X/ k  l: {
                .default_trigger = "default-on",! k4 u* ^" G+ t6 g' m# q. O0 P2 _
        },
4 M6 f, ?# v' z1 a0 M2 p- k        {
3 W! l2 j/ o5 g- y/ U' g7 J( [                .active_low = 0,
2 z  p7 l& r, Z* U, f                .gpio = DA850_USER_LED1,
* h& \2 v$ y& C/ Q2 }                .name = "user_led1",0 ?2 N- C, p: S: J& I. ]
                .default_trigger = "default-on",
2 I: q2 @& W8 ~5 u" K* d        },+ e) v9 g. V2 H2 ^3 c+ L
        {
! z1 F* ]& m0 P" l                .active_low = 0,+ ~9 `" h; m' a4 }+ V; t
                .gpio = DA850_USER_LED2,
2 D+ t* l0 F2 b7 d0 g8 R0 g  B* o                .name = "user_led2",* v: G* E6 s$ k7 U9 ^; B1 g3 d
                .default_trigger = "default-on",( C9 e2 C! j2 R/ I: B
        },
9 u0 v% a7 J7 E7 v        {. b) z8 R. m3 j
                .active_low = 0,- _$ u- A* h7 E! {7 M
                .gpio = DA850_USER_LED3,% V8 W  g7 b# i1 ]6 z( h
                .name = "user_led3",4 x( H* i$ \  G! ~3 J: m
                .default_trigger = "default-on",: [, x% M( h9 K6 L0 N% D$ {
        },
4 b8 u8 z% j  A% A};: q8 A- \# E! v) Z
1 S- U0 z# z7 q5 w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 v) T. ^# W" C. v/ c! r% J* u        .leds = da850_evm_tl_leds,
) C6 v2 u0 t/ b* S" a3 s9 }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 P* z: E7 J  A( ?0 H% k. F. P};" t7 p% [$ n3 K1 m/ A& C
/ I) |5 x5 e: W% k3 q0 z
static void led_dev_release(struct device *dev)
& ~' n+ q5 p- ^# j{1 s! n" X% m, s# I' e; l
};
- `  Z2 R* l* i7 H
. Y2 _6 e* D8 S: I; V$ Z! p1 istatic struct platform_device da850_evm_tl_leds_device = {, u/ @% P3 U, S& l6 _3 _' }
        .name                = "leds-gpio",
* k- B$ o  ]$ H1 v9 c: e        .id                = 1,
) O9 \# O. A+ y9 N" V# P2 c, ]        .dev = {
$ l) P' C% a# @+ w- n+ A* n                .platform_data = &da850_evm_tl_leds_pdata,9 `8 B& D# K! z% q8 f
                .release = led_dev_release,7 \- d& }/ U7 z+ S5 H; e  n! J
        }
7 f7 ]) z* o' V6 X  Q. M4 M* o};
( O: |9 q9 w7 I7 q9 V5 {& {; S+ ]
static int __init led_platform_init(void)+ Z0 d' s; p. a: \
{. M6 T/ K8 `9 {+ d: p6 o) n
        int ret;( ]5 ?% w5 s! u8 \" ]9 g* r
#if 0: ^2 J+ ^# v: U1 G3 U4 ~! Z' X4 h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* W5 U7 o- l4 z( x* J8 q# h        if (ret)
9 _# f$ M/ `0 l% F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ ^) t' T) K5 M. l5 O* o% G
                                "%d\n", ret);. b, q% m8 e' B6 K$ N7 D0 v
#endif
8 c: H# C3 `  c/ n; _5 k        ret = platform_device_register(&da850_evm_tl_leds_device);
" U) x* G- d- J' t" V8 X) a        if (ret); P. O5 s' G+ B* d, i
                pr_warning("Could not register som GPIO expander LEDS");
, Y) k4 l3 v' Y0 I1 W# G5 E        else
$ _- w6 S# `, o7 T                printk(KERN_INFO "LED register sucessful!\n");/ z8 |1 n! d& b  P

; P+ U/ C0 k; }! F  F: p3 Z        return ret;% N/ I4 s) R# l- K! h
}2 F$ y8 H- k* E6 W
8 t6 O! v" z* I# f  B
static void __exit led_platform_exit(void)  o6 v  U3 Y# S% ]$ B
{
* ?0 O5 D5 X* z( U& F1 e& q        platform_device_unregister(&da850_evm_tl_leds_device);  F; J: s4 n$ l$ w0 ^& S+ u& J; n+ `
' h; g7 I" W: d3 ?. X
        printk(KERN_INFO "LED unregister!\n");; G  T1 O; X3 u) ?1 H
}" J0 W6 g8 q1 W8 i  l

6 P* h: \( q- Z) i2 ]9 Omodule_init(led_platform_init);
: C/ D: `" B. x! Emodule_exit(led_platform_exit);# ^7 H" q/ X. }1 p: O  m  j
) H; V7 ?4 R! V" V7 \
MODULE_DESCRIPTION("Led platform driver");. E6 W% A0 S, s
MODULE_AUTHOR("Tronlong");
. _9 b$ O7 e/ n5 i( E# h; T- X% F& VMODULE_LICENSE("GPL");
0 Q: t) w; z1 ~
6 ^7 Y2 i& S4 ?- n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 19:00 , Processed in 0.036559 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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