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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 ~$ a5 p9 B' l8 V$ d. ?8 j, y& y#include <linux/init.h>  l" Q- G1 _3 n+ q2 d4 S* N& Q
#include <linux/module.h>
' D! f) Y/ w* ~, P) Y* b; ?/ y8 Q#include <linux/kernel.h>/ ^* I( g: ^/ H5 W4 G. Z
#include <linux/types.h>; [6 h& u2 U3 M% v9 x9 H& z! S. T
#include <linux/gpio.h>2 h. \: P& Z. A1 b/ C. m/ @& B: R
#include <linux/leds.h>
1 m+ `$ A, Q' B  w/ R- n#include <linux/platform_device.h>
; |5 o1 ^% i  X0 x( y/ E: d3 j
& P" u; D; F3 f# ]! U+ l% H#include <asm/mach-types.h>$ d$ T1 z* ~- R) j+ \! S; u1 O
#include <asm/mach/arch.h>
) _' b+ J1 ]! |. T+ b#include <mach/da8xx.h>. f* R: d) Q2 \, O# L& @/ ]6 W6 D
#include <mach/mux.h>$ D' l: f% F, X7 i( P

0 ^" k0 H( ]& w4 p7 |& E% a0 q. e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ c" B5 |0 b& D8 z2 W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 x) R/ k, K/ w3 ^/ D) R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ Z& N, \2 Z- m* e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 i  S) B! ^: q# K6 U8 D  D
0 u2 C, }+ T) x+ H) U$ U2 _
/* assign the tl som board LED-GPIOs*/) J8 n/ L" v4 E: ]1 A" Y: ^
static const short da850_evm_tl_user_led_pins[] = {
2 s5 W" R- f7 n7 m1 c2 O$ \$ w        /* These pins are definition at <mach/mux.h> file */
" h0 s+ m$ b" b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 N5 K1 O0 _% A        -1
/ V4 Q# ?6 \# l9 _  ~};/ U) `/ Q+ V+ T, }6 h! A
( g) m; g4 G2 a7 f8 e" g
static struct gpio_led da850_evm_tl_leds[] = {, C8 [) [. R& ]" ]. s3 T3 S
        {4 `: f9 X/ Z" ^8 G1 m
                .active_low = 0,
  ^  r3 q( G% ~* M+ v, ?                .gpio = DA850_USER_LED0,2 c1 j* N- M& |6 ?
                .name = "user_led0",. j7 ~' U; }& T
                .default_trigger = "default-on",! K0 ]: ], o1 c' X* w2 v2 U; t8 |+ {
        },
7 T  A' T: `2 s5 c        {% t4 N  I) p. D0 _5 X, u6 z
                .active_low = 0,
5 p, F5 d* t$ o: _' t' f* t5 B4 a                .gpio = DA850_USER_LED1,
% w* W) ^: x& M8 L# o2 @) R$ i                .name = "user_led1",
: f3 K; |9 u1 I7 e1 R; G9 w                .default_trigger = "default-on",- T$ J' p: `2 Z. b
        },1 C" `# _4 [' {/ Y) W% o
        {
# M4 z3 @4 {- E% U( t                .active_low = 0,2 V- c. S0 ?. z$ @* m# Q
                .gpio = DA850_USER_LED2,
& ~9 @6 ], s8 o1 l9 p3 W                .name = "user_led2",2 i  w9 P1 d2 y3 I$ G, O
                .default_trigger = "default-on",
. ?) s& [: S) d  d" q        },( ]# }; `0 ^0 _5 I$ G# V
        {
& l1 n1 K- [6 ~" A# {                .active_low = 0,& i) N! b- R4 z1 q# m8 J
                .gpio = DA850_USER_LED3,& I4 u1 `& u4 `( w
                .name = "user_led3",) P& h: x; O! g0 O& R3 Y
                .default_trigger = "default-on",
* B, {! v  c8 [& U        },5 A% L" s, t' x3 ]% v
};: Y: `) H8 }0 B! g# ]
0 a8 \8 r9 Q" ^, I5 b7 K) s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 I7 Q/ l- B' S% G& Q' ?
        .leds = da850_evm_tl_leds,5 S: X& T& ?0 r2 s+ y, n+ J$ O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# G. N6 [$ J, a' W) g/ H
};. \8 b6 E6 b% m6 m4 X+ C

. _- `$ z$ c4 n' c. F1 Z1 t8 Lstatic void led_dev_release(struct device *dev)4 l7 g3 J$ I: B4 V
{' p1 k! T! |8 s9 R
};+ ~2 N8 r7 A# i- w( @

5 k. }2 S" I, r# @- i4 J3 X' `static struct platform_device da850_evm_tl_leds_device = {( K1 }8 L" ]/ u% A" z9 U
        .name                = "leds-gpio",5 G" b7 m% U6 }0 F) Q5 [
        .id                = 1,* `+ f( W; P' K  o
        .dev = {
. Z7 v$ D* c0 S7 }9 m0 B9 k                .platform_data = &da850_evm_tl_leds_pdata,
. q, W' k3 W3 z2 M2 c$ S                .release = led_dev_release,
, ]7 B1 T' D- [  i& [$ W3 s/ W        }
4 j5 W9 w2 G! q: U' ?# B};* c' I) y$ b. F; e& R. O! ]$ h3 h
9 n4 t* Z( f6 f- n# V
static int __init led_platform_init(void)
: c) T5 G% ?. O, r  O6 G1 n* R0 B{* S% b+ p& B& N% T
        int ret;
8 @. n! Q; x2 t) }#if 0
9 i8 d, F- c/ ~- ?; \3 P        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# G" H& {2 C$ n) h, V        if (ret)4 s! I8 O  u* b
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" v( D; c3 N( ~
                                "%d\n", ret);
. T$ M0 k" M9 e2 J- z7 ]8 Y#endif9 j& _5 X& d. l1 l, T
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 S4 c! C! M7 n+ m        if (ret)
2 q1 t* f2 a0 r) d& U1 `                pr_warning("Could not register som GPIO expander LEDS");
4 H$ N! x5 N7 t! ^        else
* Z0 ~! m4 d0 }: t) d3 C                printk(KERN_INFO "LED register sucessful!\n");! P4 G" M+ f  K( C
' P5 @; G$ h. r
        return ret;7 A% i! j4 o0 l3 c6 K
}
% `4 I* Q' E: H) R, m) S, J. n
9 \1 S7 a0 A" @  O- gstatic void __exit led_platform_exit(void)
: X% V2 [* ]" G& m; |, ?{
3 n9 F% Z! r' A3 p        platform_device_unregister(&da850_evm_tl_leds_device);
; ^3 g3 k, E" O: X! s
  t2 K! Y+ U% {& r8 N1 A$ i- k        printk(KERN_INFO "LED unregister!\n");
2 A- M& N) t& ]/ B6 [3 c# X' H}6 y: t# a' i; S" f  r7 c" t

% |% j" ^9 c, s2 cmodule_init(led_platform_init);5 C% D. _5 R, [$ y& i
module_exit(led_platform_exit);
9 X5 b2 g1 \# t- i1 ?* U; Y5 N% O6 c" z# \3 l. s+ }
MODULE_DESCRIPTION("Led platform driver");" b% }0 \! v5 h6 L$ F! q
MODULE_AUTHOR("Tronlong");8 @& U( P+ G+ B- g- b: u
MODULE_LICENSE("GPL");  B8 {8 E# n0 F) R/ i# {2 E- w
, }( }6 o" N! ]2 j; ]2 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 03:00 , Processed in 0.037756 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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