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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 P  _! ?/ |% S0 X5 o' \& l" T#include <linux/init.h>1 b; v  ]6 z1 V" H: _+ p
#include <linux/module.h>" R# s6 _* }% e
#include <linux/kernel.h>! F8 c# y6 ?. P  i# i# s: t
#include <linux/types.h>
/ Z' D) m) s6 B) D$ g0 V& _- J#include <linux/gpio.h>7 u7 u0 ?  n! h/ E4 t  K
#include <linux/leds.h>9 u3 K, d! N# k. W5 k: e
#include <linux/platform_device.h>. `5 D) ?8 n' K/ P6 }
4 s: g2 _' D% T
#include <asm/mach-types.h>
8 _  l5 ~% V  l% u/ {#include <asm/mach/arch.h>% _' ~5 ?, @0 J8 D+ A
#include <mach/da8xx.h>
7 d! U& z! }$ ~! |: B3 |% W' E#include <mach/mux.h>
6 M0 e0 j# _! N7 \
0 O: M7 B8 O5 A: ?+ Y" T. f#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 Y3 q& d9 u( o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 M  ]2 e; B% Z5 j: t
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ e7 \: ~) t# e! S0 |" R9 v% B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 q3 Z) Z3 J+ Q" S. z
& E) B5 q) |1 A  v# E$ @, `* Y- ?
/* assign the tl som board LED-GPIOs*/# M) Z( q, U, N
static const short da850_evm_tl_user_led_pins[] = {9 U$ B+ E8 H, ?" G, o; ?" K
        /* These pins are definition at <mach/mux.h> file */
8 |9 N% f! e1 [- V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 w& o  m% r# n7 c/ r; d" u        -1
; Q, ~# w, e4 P};5 Z1 \' C+ z# _# M* {- n# J% ]

1 U2 M( E' T# p/ Tstatic struct gpio_led da850_evm_tl_leds[] = {
0 q. z( N" k0 a) H7 s4 [9 a4 u        {# `: c0 w+ e9 f4 D2 Z( |
                .active_low = 0,
3 D" V5 M9 S* R' g0 c4 ~& E; |                .gpio = DA850_USER_LED0,: w4 u* {; N% d, x  v' J0 Y
                .name = "user_led0",
4 V, Q% K: g  M$ {" }                .default_trigger = "default-on",  j& x# ^0 Y$ c& u; m1 q* G& t7 T
        },
- C. A& O; ]" D" R        {
8 ?8 y" v5 X4 {- R3 q6 Q& g8 O                .active_low = 0,
' X7 v: o4 a. J/ h                .gpio = DA850_USER_LED1,
$ l' C3 ]+ x7 r1 M0 p0 k0 G4 T. ^                .name = "user_led1",
2 O8 C  K  ^; n% Z( G4 @& L                .default_trigger = "default-on",
% [, X, u8 P) n% Y, a0 u        },7 u9 e. ^3 \  u9 d- q2 F
        {
1 k8 V2 U5 N$ I) ]                .active_low = 0,: p* l- R' Y1 Z7 Y, L. u* @
                .gpio = DA850_USER_LED2,5 Y4 z- l3 @0 }& \8 a
                .name = "user_led2",
- a! A) Z# w* x' k! m                .default_trigger = "default-on",4 X$ f3 q/ u7 G" x1 u
        },/ I3 i+ X  q0 i% N9 ~
        {: C) j9 @% ?3 X- ?$ ^6 K
                .active_low = 0,
* m* |9 N. [% \5 i3 u2 N' _: `  i5 Z                .gpio = DA850_USER_LED3,: \+ b& Z  e* [/ I! c
                .name = "user_led3",
/ n& y, `1 [# u/ `4 ~$ v' K                .default_trigger = "default-on",
; v& R8 T7 F0 J        },
7 A* I$ |: R& @. f  Z% z};
' R1 e/ M( X7 \0 J+ W* T; _
9 I5 n6 o3 l- j0 V$ ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! _: q) a/ p; t! t0 v- F& N1 L        .leds = da850_evm_tl_leds,
8 b5 t* I; r/ ^        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 p( i" R! t3 e$ {" W};
) z  A! [( |7 Z# B7 n  ~, I$ m; V4 n) n2 j' G
static void led_dev_release(struct device *dev)
6 d  {3 R1 a8 H8 [) }! g: k# r. Z3 _{( w$ S4 J) V2 l* A
};
- r' v2 l" `; {3 l& z. M
- n' [; z' T% T5 Jstatic struct platform_device da850_evm_tl_leds_device = {' K% l; q$ q# @
        .name                = "leds-gpio",+ i& f: E5 E# S" l( {2 N8 N  n
        .id                = 1,+ l+ ^  X* i$ `1 m
        .dev = {7 J- ]/ z1 H5 i5 R! J4 J9 U8 t
                .platform_data = &da850_evm_tl_leds_pdata,. @. [. q3 K7 L3 ~2 t
                .release = led_dev_release,
" w* H: ?6 ^0 W4 y7 P        }0 _0 P/ m: J# Z& n+ }
};8 S; D) p' C7 V$ E+ f8 S. L
$ J9 Z9 s, [' }4 \# j) O0 e
static int __init led_platform_init(void)$ R& T8 U, s) j2 d6 w6 a+ t8 Z, ^
{
  l3 f& E( Y  V: U( U        int ret;
9 O* W5 t2 R8 \2 b#if 0$ c0 L3 z6 Y7 {" J. C2 @  t5 |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- [; b1 Q7 j& B  f! U/ V4 o7 c        if (ret)# U$ j/ f6 X: [) d/ F! R. s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* H1 p- G0 U4 M. \, H4 {
                                "%d\n", ret);9 o$ k! H; p: b, ~7 S
#endif4 w- Y  T0 q' n) q0 V- |6 S9 Q
        ret = platform_device_register(&da850_evm_tl_leds_device);6 u$ ^7 F' h/ A4 p( o- S; y
        if (ret)# j' Z) G( s$ A, O, d; X% g/ U2 `
                pr_warning("Could not register som GPIO expander LEDS");
' _0 ]' t' s& Q3 H- V4 o' ?        else8 ~2 _8 T, u' Q+ ?
                printk(KERN_INFO "LED register sucessful!\n");
* ]( |) g- ]# z# o( O  D
, n+ A& x. c2 }, g7 M        return ret;1 P% d, {( E  \' ^2 }, b
}, w4 q% z8 A% w; g6 b

0 k4 ]7 Y- I0 r9 w0 }( R0 N5 Ustatic void __exit led_platform_exit(void)
  S9 b+ ~/ f  Q& w{
3 I; t$ {: R/ H6 H& N4 `; C        platform_device_unregister(&da850_evm_tl_leds_device);
, X" h, Q; t  H6 a/ M' j- ?
! o) U5 I$ S' U  R' M( s" ^0 j        printk(KERN_INFO "LED unregister!\n");( L) R: ?$ X/ `1 W5 R" W$ E. v" ^
}
2 }* I: h* b+ R+ a. I4 P
, D, p9 }2 I, ~; B0 [* cmodule_init(led_platform_init);
. z3 c, g$ \. ]: q/ R/ Y7 Tmodule_exit(led_platform_exit);/ X2 U# U3 @/ K% p7 f' i9 B

- I5 G& L" ~/ \, GMODULE_DESCRIPTION("Led platform driver");( n; H+ \3 ~; s" F% Y0 p
MODULE_AUTHOR("Tronlong");7 d% ?# ^& |# ~& a0 K! |
MODULE_LICENSE("GPL");
4 \+ w' @/ p% t+ ]- R% X0 s3 ^5 e5 I; g& o' q3 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 06:58 , Processed in 0.037333 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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