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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 I4 ?7 `1 U8 C. m8 G4 ?- E#include <linux/init.h>4 D0 V/ a9 A# Z
#include <linux/module.h>
6 L6 h" a( i6 [' Z#include <linux/kernel.h>
+ Y- d& z  G& d- ^: u5 w" }3 i* F! \#include <linux/types.h>
9 q' e; u: v( Z& p" b5 \% Y#include <linux/gpio.h>
1 G' ]+ x0 H# O8 ~#include <linux/leds.h>5 j3 _: m) H8 e8 w2 z$ ]3 o  e
#include <linux/platform_device.h>
+ O* `& Y+ A- A
1 G' H. p$ B% ^7 }7 L#include <asm/mach-types.h>9 H. k. u, F4 Y1 M1 j& H4 b# w
#include <asm/mach/arch.h>( _+ ^3 P# V3 ~5 n7 a: D4 M# W
#include <mach/da8xx.h>! w& |' S* Q' e" R! j+ c, v
#include <mach/mux.h>
, D5 ^% A0 \/ F1 }$ B6 j1 ^
8 I/ s- W$ K  d) i% o# F; q' B#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' I6 H! y4 F5 U5 }2 a$ S
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 r7 b0 p8 v( Z2 ^7 R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 _7 b* k" {1 p/ }* n+ Z6 ]! G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 v4 ]5 ?. a$ K+ P( V# V3 Y. y# y3 {0 g0 n" a3 K) |
/* assign the tl som board LED-GPIOs*/1 j& y6 m$ S1 [2 t5 L5 R3 d( h
static const short da850_evm_tl_user_led_pins[] = {, u9 B5 A3 n+ g& l
        /* These pins are definition at <mach/mux.h> file */
( W. r% S# Z' V# l) y  B3 u, Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 U% m! O1 Z& T# D2 q: Y5 ^* `        -1; x1 j; k( s' \2 G9 o
};2 ~1 ~$ R& v3 @3 `- ?( d

, W, @5 C% d2 P* D0 mstatic struct gpio_led da850_evm_tl_leds[] = {0 i! t$ O/ |2 p: z5 ~
        {
- f+ z$ d  L# q; G1 c                .active_low = 0,! \; [  Z" U7 p; I
                .gpio = DA850_USER_LED0,
. _6 x6 S. X  r1 J$ F! E: U                .name = "user_led0",- g+ I* `  J4 u3 K# O+ z# u6 Q- `
                .default_trigger = "default-on",9 E, H( _8 T$ ?6 B
        },( x" A, v* w5 }+ Y# P
        {
$ H  h, J2 P7 Z" s                .active_low = 0,0 Q) _& S# \6 S2 X$ ~4 G9 [- w
                .gpio = DA850_USER_LED1,
4 ~, W/ S: [3 ^" P% b. v% ]% i                .name = "user_led1"," N" q; S# a" P: m/ ^( f- V* ]
                .default_trigger = "default-on",
/ V9 g+ Y3 {: z4 c$ n4 U3 O        },
! p" n9 J; w0 `4 S9 j: A+ Y! S  P        {
2 x5 {6 D/ U+ [                .active_low = 0,0 a0 `: _7 O4 ^$ J5 x/ ?
                .gpio = DA850_USER_LED2,
2 h" ^0 q- p, \# K$ F                .name = "user_led2",9 s) p% o; K/ B, O6 e
                .default_trigger = "default-on",
% D  [& Z& l( ?& r- P        },
3 Y+ l+ b+ u3 _) T# n& {! u        {
$ Z: g1 G5 t$ ~3 U9 D* b4 x: H. l                .active_low = 0,
. Y, X; M6 e6 i+ w( O                .gpio = DA850_USER_LED3,; `2 a5 o4 Y! E# q8 C( M8 D7 r
                .name = "user_led3",
1 [& J. J, D5 R! ~                .default_trigger = "default-on",
1 a2 S' Q+ k& l        },
0 @! }5 e7 t( A! `5 L5 i2 L};1 }' K5 Q( Z3 r8 l' v  V' p3 H' y
) k- {' \( O) i* R# Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( Q! `+ E7 {  w        .leds = da850_evm_tl_leds,
/ v8 o- P& x% V+ F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 J2 J: `% o' ]+ V( f& Z: E
};
% ^& ?2 A! d* u/ s, W( t' Q2 q; n9 H6 ?: g3 a
static void led_dev_release(struct device *dev)
! h5 ?: G- b, _1 Y) ]{6 P+ l0 b0 N3 e  K& |
};2 a& {2 d  ?- P9 Y- H! n/ f4 E
# @7 V& E$ {; _* T+ T
static struct platform_device da850_evm_tl_leds_device = {8 Z% A3 S  }2 \: E* [) h1 l
        .name                = "leds-gpio",
$ k3 `5 d7 u, t' [- s% g$ M        .id                = 1,
) |8 C# O' v& s6 Q& q/ a5 \        .dev = {) z0 l1 C9 f8 ^" x" M! f
                .platform_data = &da850_evm_tl_leds_pdata,
9 l) o! s* }  _- J9 F5 \& Y' Y& W1 t                .release = led_dev_release,
9 R0 p! _1 [0 l  ?4 J$ `7 n        }
' a( h5 \- I( A4 M};: F; X0 z& ?9 E2 E% l+ x0 @
: z9 l, Z* n" \
static int __init led_platform_init(void)! D9 i! ]0 f. e1 o; ^  U& i
{
* j' O' _$ X- p        int ret;1 M1 g- f. R# u0 X
#if 0; H- f; ]  K9 j7 ~/ E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) L0 N* q7 {: {' E; G: F4 e- Z/ S        if (ret)* ~  O+ X( _; J/ y4 S* E4 W2 D8 M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' F* \; V7 c6 C; @& g
                                "%d\n", ret);
4 @# B/ M8 n( S8 b! i+ |1 V#endif
) m* c* D7 a; N8 u        ret = platform_device_register(&da850_evm_tl_leds_device);
6 g0 f2 Q1 ?4 S        if (ret)
( b2 d- ^; v- @# w& a+ O$ J                pr_warning("Could not register som GPIO expander LEDS");
# x. x" K8 O% g4 u! y9 U( E        else
4 W( l9 u) I& b5 _# P                printk(KERN_INFO "LED register sucessful!\n");
/ K7 y  K  |4 ~8 U) I: U
* `  C% F* \6 ^. |        return ret;4 V2 q! Z- p9 Q
}
" Z5 |# G# D7 [- T7 s/ H8 F5 ^) `5 Z9 n* Z: R7 m  {
static void __exit led_platform_exit(void)# X. u: q% u1 f* b& c
{
9 z$ O; s2 G0 |, J1 N9 v! n# ~' ?        platform_device_unregister(&da850_evm_tl_leds_device);
  J3 |7 h" l: ~; d  M; b) d8 v. [: ]1 L  N$ {. y- [, X
        printk(KERN_INFO "LED unregister!\n");
- v( Z1 N) z3 H* S5 o}2 k$ }$ s9 e; c
$ P0 R3 [2 M% _6 \. e5 U
module_init(led_platform_init);; M1 M- \. ~% t/ n& [7 q. u
module_exit(led_platform_exit);
8 W) Z1 s( O0 `$ J$ I6 ]4 j' t0 ]( w
MODULE_DESCRIPTION("Led platform driver");9 T. ]- k4 M0 l+ B! k$ T
MODULE_AUTHOR("Tronlong");! Q3 V1 F* J2 l/ }# v8 n2 b& M
MODULE_LICENSE("GPL");" N: J5 C% n2 \7 v) ^' ^0 \* H
& w  J2 a3 v8 l6 Z1 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 17:42 , Processed in 0.037419 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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