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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ ~/ A6 f+ k1 B) }. O/ ^#include <linux/init.h>7 q- n" `7 ]# e
#include <linux/module.h>
3 P4 {8 q2 S* F  Z4 N& p#include <linux/kernel.h>- j; ]) |- Z7 `  D
#include <linux/types.h>6 d+ T/ w5 Q$ v- c) ?. d2 K
#include <linux/gpio.h>1 ?; l2 u) s/ I; F% b
#include <linux/leds.h>
$ v/ \" b# Z( i% H#include <linux/platform_device.h>
1 r; ~* r% J" t5 P7 L( ^* N( a# v& c, J
#include <asm/mach-types.h>
7 W- }' ?4 p8 @* J3 f. h" ]#include <asm/mach/arch.h>  F8 T/ \  U) m9 ~1 n' j
#include <mach/da8xx.h>) [8 v' j) Z2 U% j- e
#include <mach/mux.h>% o  D' Q# z) t& l

) k$ U+ D1 J: o7 p" m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 P7 J0 e9 p  v0 y2 Q& A
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% D; P$ @# L* A9 J8 l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 ^5 G- K7 J4 K. l$ ]9 k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& @. c/ x/ ^- p" X5 W! }
  t* m" }0 W4 [/ A( g4 c! G/* assign the tl som board LED-GPIOs*/
% F0 Y2 ]" P$ U$ c# [static const short da850_evm_tl_user_led_pins[] = {
$ D. Y2 A. |: Y, q) @        /* These pins are definition at <mach/mux.h> file */
$ l* R7 s3 |* y; ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 C! e* ~' _8 s. |1 I. m
        -1
- ~+ W% o# D7 O% B* `};3 }* V  t& D  X( @% e6 _, k

6 j& P- w5 S  }static struct gpio_led da850_evm_tl_leds[] = {
8 j+ y4 }1 @; ]0 T& A7 h        {8 l5 S  m5 [5 [/ \& P4 {5 D
                .active_low = 0,
% j9 H/ h. Q) Q& j; B9 W                .gpio = DA850_USER_LED0," s3 Y4 y7 j1 U* _. Q% r& J
                .name = "user_led0",  ^8 W+ L8 D" C/ y; ^6 g* J
                .default_trigger = "default-on",
0 K, M. s0 |) B- c1 R        },. s. C! \8 l# E, Y) I5 F
        {
. _' m( r7 W  a" {: F  G                .active_low = 0,% ^: J- W  R/ Z( o' e- k* L
                .gpio = DA850_USER_LED1,
' j/ q6 q/ j! g5 F; F9 |5 a                .name = "user_led1",
! D9 U$ [7 U4 F  B                .default_trigger = "default-on",
/ v3 y9 m8 N2 n" X        },
$ f! y0 X" {. j* u5 u* Z  R/ m4 X        {8 m5 d' j% }6 G; u8 s" Q% C
                .active_low = 0,
. D7 ]& z% ?4 C2 I                .gpio = DA850_USER_LED2,$ i3 N9 x3 V5 q. t& x8 v2 r
                .name = "user_led2",
& `7 K4 o' X! a" p                .default_trigger = "default-on",
4 l; e. R' p1 u3 l; I2 v2 n        },. o% H9 ?1 `0 l) o
        {
1 V- c5 x2 n; M5 G                .active_low = 0,
. }$ f2 g' W$ i, H: h/ q                .gpio = DA850_USER_LED3,* U/ \7 m4 w! q, ^( b
                .name = "user_led3",
3 C. ?+ q4 N% C9 G3 j! C  Z$ v. u                .default_trigger = "default-on",3 G4 O% N# q3 O( s! `% I8 Q* y5 R
        },
  e$ M* G! A" d. _: A- e};
# C/ }5 J5 \, I2 u  B$ ~1 |* n/ @' o- {4 h5 {/ K! n, ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ W/ o! D! t- ?
        .leds = da850_evm_tl_leds,
" q1 x) U, ?8 J. s# L( Y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 d3 C2 s' v& K& y0 |6 p& W4 E& h
};' H9 m- K6 ~9 `5 E5 K9 Y! Q* V

$ X0 h' {1 ?" t" D  _8 B( q7 T4 sstatic void led_dev_release(struct device *dev)8 `4 I& d, b5 [$ L% ?& R9 r$ s
{3 b; P$ _% Z8 u. w- ~; b1 F# |
};
  Z* y- y1 I$ L$ N7 o
3 n" b' D3 B/ n+ q# z) Kstatic struct platform_device da850_evm_tl_leds_device = {
0 r2 I) t2 h( v$ V& z9 ?        .name                = "leds-gpio",
1 J5 }* {+ R6 t9 A3 ]6 l        .id                = 1,
1 O' W, R0 t" E8 f3 L        .dev = {
- t0 X; J. t$ j! R; j1 j) A                .platform_data = &da850_evm_tl_leds_pdata,
, P/ R$ u. R- A                .release = led_dev_release,$ \( I7 Q$ z6 P1 d& K3 _
        }4 y+ _) }/ k# w2 k6 R
};
% |$ @8 ~" C% l$ t2 C3 L0 E/ N% v7 T6 M4 x2 S% b
static int __init led_platform_init(void)
+ a. c0 K/ ]- t- y: b{
3 I( l+ H8 `; x# U/ I; F% y0 R        int ret;3 M3 r0 z% f+ y. }/ U& W
#if 0
4 q4 l* @9 n! w0 \; r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 Z/ T- o; b4 ?5 o& s/ e/ g3 `        if (ret)
) ?" U# H3 m: B* n& e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 l& i3 P* @' A" L/ P/ X                                "%d\n", ret);
; S* P' j" }( f4 U) q7 }#endif, E1 s" V, ^1 H6 ~1 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 N; Y  o. f* o, f- Y        if (ret)
( C+ C! t2 ^( H# W! H6 U9 e                pr_warning("Could not register som GPIO expander LEDS");
% {" x( [1 `# C- p% ~        else
) ]+ z% S6 P2 J5 F' K, P- O                printk(KERN_INFO "LED register sucessful!\n");
* A9 e* o2 W6 g
! S* t1 w: Z  O+ [# \4 g% p        return ret;% k' @0 F( g! @( M" X# {" O
}, [" J0 h: k- y

8 m& i5 X% \' ?static void __exit led_platform_exit(void)! I$ L7 g: L" o& H7 N2 ~
{# g7 V) P% P/ g' t* c8 }6 E
        platform_device_unregister(&da850_evm_tl_leds_device);7 k* k& |7 a% D7 R) ]" L; T1 ?5 n
% |" n5 N; d+ F" H0 H
        printk(KERN_INFO "LED unregister!\n");6 t, j0 _0 v2 s4 @1 Y8 y, s) [
}
  @% v0 o! I8 ~! H/ _' b1 m- x8 L' Y4 k) `3 F' K& t' {  Q8 B
module_init(led_platform_init);$ }' Y) W$ b) D8 h4 i; o
module_exit(led_platform_exit);
) F; e# m7 p+ C0 E; A  ~. }+ |0 a- R* s: R& }; a  u
MODULE_DESCRIPTION("Led platform driver");; H$ ~5 a" R$ g3 r
MODULE_AUTHOR("Tronlong");
( Z8 k1 }& [3 jMODULE_LICENSE("GPL");
7 f9 k  q- ?, l# m, h" n, M% h/ D
; g2 ~# b% p  o; r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 21:31 , Processed in 0.039467 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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