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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, B3 Q$ }* m6 N1 B  q8 H1 ^+ A#include <linux/init.h>
9 j5 y+ ^8 {9 K: d#include <linux/module.h>. a- ^( z, g9 x8 `' B
#include <linux/kernel.h>
; t3 `7 e$ i( P. E. G' _#include <linux/types.h>) q: M+ H3 {' ~; @8 O7 h; B8 Y. [4 b7 O
#include <linux/gpio.h>) Y3 d5 J2 ?. ^7 @/ ?
#include <linux/leds.h>1 _; v$ `2 [& ]/ Z$ Q) @
#include <linux/platform_device.h>
1 y% s* D3 c* }# [+ t! N9 w0 s6 l3 ^3 f; u/ j- t, ?$ f/ |
#include <asm/mach-types.h>
* @$ i& @& b9 l( e#include <asm/mach/arch.h>; ]4 f9 g* J' F' J0 Y, f6 P
#include <mach/da8xx.h>+ e8 e; `) R1 D: T
#include <mach/mux.h>
$ }! c8 g8 G* E1 V$ E7 L4 }" {/ w$ k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), k0 O5 t, f  Q8 Q, v8 m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ B: b4 E. o( e, w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! l! X9 q9 T5 Y1 Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' D1 g$ j& ~# f
6 F) c7 P: Q% w& j) h' t1 k
/* assign the tl som board LED-GPIOs*/
9 B- b" d- g$ T- }7 rstatic const short da850_evm_tl_user_led_pins[] = {
+ g  g0 z/ J% Z+ i6 N1 F5 a0 C        /* These pins are definition at <mach/mux.h> file */% y/ d  @3 u; N; W6 B" ]4 A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 o  @$ C0 Q+ }6 h% W
        -1
8 S- N7 @+ V" a/ I0 ]1 {};
) G& @5 E4 o* R- _* V
$ `+ j# r; R/ w1 x$ f+ Mstatic struct gpio_led da850_evm_tl_leds[] = {' b1 L( l7 G5 ^; L2 Z9 m. [
        {* M/ A1 }8 f. z7 N& e# H+ U
                .active_low = 0,
! p9 T: I& ^5 }2 }: m8 t: _6 q9 V                .gpio = DA850_USER_LED0,, ~+ a2 S+ v! Z+ x2 }! _$ \6 t
                .name = "user_led0",
- M8 W7 e9 T- f5 [& c                .default_trigger = "default-on",4 a% U8 m9 I& w: O' p5 R8 s
        },+ w: w4 u2 {. G% f. W( L; A% B- ]0 s" H
        {
8 r6 @1 I" b1 b* F; L                .active_low = 0,
* B( X1 L% p8 k: V                .gpio = DA850_USER_LED1,6 b+ Q& Z: K: I" a  s, `
                .name = "user_led1",
8 J/ K& s0 ?. m7 X7 E                .default_trigger = "default-on",6 c! D9 x9 F& H  \7 N
        },
* [& U- T& E/ n. u        {
) j+ h. G+ q3 [% R' @; g! ?% V+ o                .active_low = 0,- t7 t& d( Y  l5 `1 b
                .gpio = DA850_USER_LED2,
* a/ C& P: x' t/ z+ W3 ~                .name = "user_led2",
( B' q( `3 L. T                .default_trigger = "default-on",' u# ?# `% ]* `, o+ G8 F% H) w
        },! i1 x+ R* O/ ?# P
        {
  n7 X" {2 V/ g2 w+ N+ K. D( u, L8 k                .active_low = 0,- D5 p. W6 b% K& X# N0 S
                .gpio = DA850_USER_LED3,% e# d9 Q& e* W
                .name = "user_led3",
: C9 Z( ~; [6 Y& e                .default_trigger = "default-on",
9 r& z: S- W1 `  n* ~3 C' k        },$ R7 ?. Q* O8 D/ o, P& ]+ f
};& d! X0 m' i. u/ h' `$ S
5 K1 M, `& D* x$ s8 Q# J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 P; ~4 X; E; I( C% w& R
        .leds = da850_evm_tl_leds,1 Y6 @- N1 t6 |& k0 F( S3 e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 t; {, Z9 d; ~
};, L* ~; {/ k0 O# b) L$ v# F
( ~8 v8 j8 d8 s/ H
static void led_dev_release(struct device *dev)
$ z" R* w, B, ~0 j+ s# g, X{: O$ e1 B! @7 J& k. _
};: x5 g% P& `+ n* z
/ Y: f$ I3 \; b7 {
static struct platform_device da850_evm_tl_leds_device = {8 U$ b! }7 s8 ?$ Q
        .name                = "leds-gpio",' k+ `. e; T1 f8 [
        .id                = 1,
* }% a; o1 |# k        .dev = {
3 a. G2 a3 V! |* w& j* D                .platform_data = &da850_evm_tl_leds_pdata,
; Q- W. S5 e1 v4 I6 k- Z' o0 j+ ^  s                .release = led_dev_release,) r. c/ E! r; E: S2 h; g: t
        }/ I: k' x5 ^9 T! J7 R+ Q$ o
};) ^7 w; m) E! Y
' a' k" C2 `$ O
static int __init led_platform_init(void)
( I* E' U# ?1 V) X! R{
8 [* \) {- n- x+ Y- x# w) R9 W        int ret;3 L1 f  @8 J0 f4 O- q& F
#if 0
5 B' \6 K% |7 K6 y; C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ n8 p2 s# m5 m        if (ret)
5 w" i$ T; J7 j8 `1 \/ W$ j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") c! q: E2 t( y  S
                                "%d\n", ret);
7 }, G% n' G) X: V. H/ m#endif
( |- I8 I3 f3 g/ r- d! v        ret = platform_device_register(&da850_evm_tl_leds_device);
6 r1 p) h& |' o# t( G        if (ret)- V& h' w0 {; S  f1 C$ c
                pr_warning("Could not register som GPIO expander LEDS");# b8 {1 `& l) i& I" y& [% M1 r
        else
/ g  `/ {# e, v. Z4 O3 m                printk(KERN_INFO "LED register sucessful!\n");
9 g# [; y! R" X7 x2 W2 y0 B% t7 G2 d# \  P
        return ret;
8 t  `9 O9 l, z+ X! N}
: T3 Z4 _8 ?0 C. H9 [" ^
# k7 p% `  J0 t. A, h4 Y* _2 ~static void __exit led_platform_exit(void)
% l& E& V. s1 P0 j- d. A$ |; x{
/ ?& \7 O6 {4 R( {, y, s" V( `        platform_device_unregister(&da850_evm_tl_leds_device);# i' F2 n5 u$ O) v  S9 w3 I2 @
0 _3 `4 s; g& k8 f  g
        printk(KERN_INFO "LED unregister!\n");
5 t2 s# y- n3 [; f/ Z0 z' ?}
& v) h0 o' h: i! |4 t; J, J- R. M# y, @: z( h* P+ e- }/ h
module_init(led_platform_init);
) g& L0 f2 b$ Y3 a; T# emodule_exit(led_platform_exit);/ ]" ]( P7 [! [: a7 l
% d3 v* ^# }$ B7 W" p& S5 j
MODULE_DESCRIPTION("Led platform driver");3 l) m* Z" r/ W, H8 v5 ^6 j
MODULE_AUTHOR("Tronlong");/ d7 C8 w6 r1 r
MODULE_LICENSE("GPL");
/ _" a! L) Z7 ?
! M# t% a. H/ u$ l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 04:11 , Processed in 0.040577 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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