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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ \+ F$ u& H0 b#include <linux/init.h>
9 u# R; q, x/ U1 L" W#include <linux/module.h>
5 O8 `, C; f/ y& l#include <linux/kernel.h>4 T" u5 w$ H& y; J
#include <linux/types.h>
) V0 V7 P$ }2 S3 `#include <linux/gpio.h>- [" T9 y' @$ p# l
#include <linux/leds.h>7 @- h- {% p8 m
#include <linux/platform_device.h>7 t# R/ M$ s2 `/ G! @( X

/ Q! E5 G# s! K1 R$ ]#include <asm/mach-types.h>
+ F1 B  [+ F" U6 p#include <asm/mach/arch.h>+ a/ g- g1 G% l6 R* Y: m- f
#include <mach/da8xx.h>  H2 S! v8 d& I! G  a
#include <mach/mux.h>
! R# Y* j% b8 V
" O, H5 g: C9 R! O0 g' P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' q, d& p& j" g, k- |1 D1 e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 V* D* I3 M# \7 z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' I* Z! X! a* {4 R+ H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ N  [" o% p7 P, y7 t# F& J" l6 S" w; Y1 F. x, m2 a
/* assign the tl som board LED-GPIOs*/
) \8 l# [& ?2 a5 x9 m% o) t; Nstatic const short da850_evm_tl_user_led_pins[] = {9 R( q  U) {" c  d
        /* These pins are definition at <mach/mux.h> file */( Z1 \) ]0 q3 n. L& t8 a$ R( i3 U# C9 u3 q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' @; g* t% u/ s' E        -1
1 f/ x) w9 y. f6 ]};' K$ n9 I3 \& z9 N3 m; o* N4 ]
0 s+ q7 f8 Z% C! r3 f, z' H: j8 t
static struct gpio_led da850_evm_tl_leds[] = {
6 @5 m' @% C2 J8 Y- a: `* z        {6 |, L  Y& v0 y9 F1 D  p  q: U( y
                .active_low = 0,
1 `" K# Y; u+ }2 S                .gpio = DA850_USER_LED0,' \8 z; j" `' B
                .name = "user_led0",
" ?9 T4 \% A+ B' f6 |0 J# D# d0 {                .default_trigger = "default-on",+ \& e. p! q3 R. S( t) P6 }
        },' f+ h4 N. m1 t4 w
        {4 U, }- q2 X- X0 }! X
                .active_low = 0,  ^% V5 f$ `7 s5 N+ E# h3 x; D
                .gpio = DA850_USER_LED1,
* l0 N- G8 K' r! v: @% t, P                .name = "user_led1",
8 R& ?, S# y( F6 _% O                .default_trigger = "default-on",( G+ l0 O. K' l* h$ |( X9 M! b+ q
        },
" {2 n# u$ T! o        {
- e6 Y3 t8 s2 ?9 z2 Q, H  e6 |                .active_low = 0,6 O3 ~. ?) C2 c( x* o$ B; i
                .gpio = DA850_USER_LED2,) l- }( N" U8 X+ K/ y! R
                .name = "user_led2",; h4 y* h, Y( R
                .default_trigger = "default-on",4 n: \) s' H, A  X' k* D6 d" h
        },
9 D0 P+ l) ^' `+ A" `        {' N& t- ~% T$ e4 X% J* d6 A
                .active_low = 0,
. p- V# t2 ], j  O                .gpio = DA850_USER_LED3,- p7 W5 L. z* g. E. V( [( S. Q
                .name = "user_led3",/ ]8 A- w. s" j3 J
                .default_trigger = "default-on",0 v$ ~, K& n& }5 Y! Q
        },
  n) e# r7 ~. O! t7 p: z% g};& F* S# Y% w! v( l, u2 j# p

" w5 [% K7 X2 }) f# K% P: [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 v4 h/ t$ S7 k# k3 i
        .leds = da850_evm_tl_leds,
9 T3 U. J, m9 x2 T) t! f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" P3 D8 L7 Q6 B# R2 l4 H8 n8 A};7 Z1 X7 S5 q+ X

, \# `# V- |! T# T  o# p! j" ~static void led_dev_release(struct device *dev)+ B8 F1 |" q9 T; b
{6 t  [/ b2 j0 o# ~: F
};* e/ [, J* K" ?$ U6 i# H

0 K8 Y2 z: I) f6 {/ D* j. tstatic struct platform_device da850_evm_tl_leds_device = {# ?+ a7 ~) _( P/ N! d3 g
        .name                = "leds-gpio",: @  c$ T& K$ I: B
        .id                = 1,
+ F, `" C0 K, g  [% ~# ]' q        .dev = {5 K' O- T0 h/ ^- h8 X
                .platform_data = &da850_evm_tl_leds_pdata,
, m6 G2 R: F+ F% ~2 o% N% k! |  Z                .release = led_dev_release,
$ G- A% n+ S3 W( b# t. w" s9 y" j        }6 j: K0 m) d" K2 w7 A
};
( W- O5 o4 Y( \
3 [- q' ~: j0 f9 _3 [static int __init led_platform_init(void)
9 M: ^) i) p$ ]$ C) ]( _{  r: L' s9 E( n" F, y; S; \
        int ret;
( [" f% v) N! y! \2 u#if 0
: w& q3 D& o) j/ A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 u+ f% h4 `4 J8 J4 b/ ~3 h
        if (ret)- t* ]9 V9 z+ C- B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% |/ r% F* |( x8 `5 D1 R0 X
                                "%d\n", ret);& Z0 ~7 j2 ?9 ^3 N* x8 G' Q
#endif
7 g" t- v! L% b1 w        ret = platform_device_register(&da850_evm_tl_leds_device);7 B, R, s9 z; B+ w* h" e5 u
        if (ret)
- j; r: ~" Q* q                pr_warning("Could not register som GPIO expander LEDS");# |9 t2 v( l: L4 w1 S9 z
        else8 }/ _, B3 m% z" u8 y* f5 X
                printk(KERN_INFO "LED register sucessful!\n");* Y; {0 q3 d- A/ ^2 @0 ]# m

* _+ s/ L5 l. S6 n        return ret;+ [7 B; Y! Q2 `9 O! `' p' t
}9 y; c/ B3 O. @( E
+ W* \$ s6 ^3 V1 [4 k* Q5 L  \0 w
static void __exit led_platform_exit(void)# m& p$ a5 j4 L! Y' D+ I' @
{/ K' I3 s$ _) R; ^( z5 M& A
        platform_device_unregister(&da850_evm_tl_leds_device);
; `, B1 K  J4 x% p! U0 V* |  D% P
0 N3 u$ H5 ~- Q* S2 [1 p        printk(KERN_INFO "LED unregister!\n");
* C9 z4 c9 `& u1 A}
" e; b9 t! @9 d: b6 s# O* c* S7 ^! ^, j0 K; O- K  {
module_init(led_platform_init);
4 |% c# |  a0 C4 vmodule_exit(led_platform_exit);
/ @& v) ^5 t. j+ I3 r) s+ j. q3 T) Z, a* Q& H5 {: c
MODULE_DESCRIPTION("Led platform driver");7 f0 l; a' E! s( e
MODULE_AUTHOR("Tronlong");( {9 w( D, W# V
MODULE_LICENSE("GPL");( {9 W0 V$ l5 k! u, L9 E1 l
3 S7 d! Q0 n7 C6 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 17:05 , Processed in 0.050732 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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