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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. e$ F% k! V  v3 N1 a4 C#include <linux/init.h>1 o* \' d: y! `* P
#include <linux/module.h>* O) ^3 s9 f5 ]: d4 P$ i
#include <linux/kernel.h>
' i2 t- U1 g7 ?' s#include <linux/types.h>
  s- n/ t* j# M( ?2 \& R#include <linux/gpio.h>
+ [) T8 x  H( b+ G. n1 Y#include <linux/leds.h>
- p* z$ S, t- w2 [#include <linux/platform_device.h>9 b- N& \. t0 K, s  i, `2 V  B9 t7 p0 e
5 }5 M# Q, f* }/ H6 G8 Y1 F: S
#include <asm/mach-types.h>6 P* v# o2 L; u: E
#include <asm/mach/arch.h>0 i6 ~$ A; H7 c% z
#include <mach/da8xx.h>5 c7 z' X- z0 s
#include <mach/mux.h>
  n4 F5 b8 X- n  q
  ~" `) K) K4 ]" A3 l# Y; \- c  W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 D7 P  }- P: {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 X! Y' S3 Y( y) J4 @; P) ?  q5 y; Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  |$ w0 R% c1 _- r/ M( d#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 I1 O, K* k1 L! L2 ^7 I. r! g
' h6 F7 n) v3 L- l
/* assign the tl som board LED-GPIOs*/; \. O) S3 h; h/ v) n
static const short da850_evm_tl_user_led_pins[] = {
  @3 w, W% I) Y$ n! o        /* These pins are definition at <mach/mux.h> file */
6 p: n% T( W5 D$ P" U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  v9 U4 }- ~# {3 x' C) F
        -1: d; K5 i: m/ M7 ?
};
# X) O' `/ B, U6 D
, }. D% I+ o8 d1 \/ W; hstatic struct gpio_led da850_evm_tl_leds[] = {
' x: `& ?" o9 I8 ^* g        {
0 D: Y9 W" R8 P2 F5 z. v                .active_low = 0,
  I3 m+ T( `  e/ F, f0 M& k                .gpio = DA850_USER_LED0,- V+ p5 U, M' V2 N, g
                .name = "user_led0"," s, q+ r% I) H% Y
                .default_trigger = "default-on",- c: m$ f7 k0 i# m% }
        },) M' w. B+ J% {9 z% }2 X
        {- G% d  p% [+ X# t
                .active_low = 0,
2 L' S" V1 K1 N: X3 t% {3 g: N                .gpio = DA850_USER_LED1,
7 |5 W! m, s, b8 W* p                .name = "user_led1",
" O+ H+ f1 I, p" W0 w; v9 S                .default_trigger = "default-on",: e& F6 Z" n4 e( p6 D6 |8 Y
        },
4 d  x$ [# N& i2 `/ o( h' X0 J        {
8 Q0 f" S* ^5 a                .active_low = 0,! @2 k) |) F6 \6 d
                .gpio = DA850_USER_LED2,
9 x5 m( P  A8 W7 u1 N* Q+ \$ T                .name = "user_led2",# G( a) b! N6 R4 ?
                .default_trigger = "default-on",9 _1 I2 l- U+ r! z: q
        },
6 Y2 p6 e4 r6 Z5 h' v        {
' f+ b8 h. p3 p4 }# o5 f- h                .active_low = 0,7 A- m  W) u* X$ n/ F) J7 @
                .gpio = DA850_USER_LED3,+ Q  n. g! p2 q! ^' t& a$ P8 c
                .name = "user_led3",! p: P4 P, u& |! p
                .default_trigger = "default-on",
1 {7 E/ H. l- a( {0 N  o  ^! w        },0 _8 S2 m( k1 B7 \
};
/ Y* e8 p$ N( Z
6 Y3 T" T) |5 L" _6 b1 Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# p9 g1 _3 j2 O5 q; Y+ j        .leds = da850_evm_tl_leds,# U1 W$ D' t& w0 J8 \: w# K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 G+ N8 o  H  g4 y! L};4 t, A. e/ o+ c+ c  Q

0 }- S  ^8 `4 {" E6 N8 S) [static void led_dev_release(struct device *dev)9 x. |2 ~  N& s/ O1 Y
{! s2 m* e& H. h$ _
};
; d3 F3 Z; b; \$ _$ G
! j4 e( a: h; U& w( M* m$ ~/ m! y7 tstatic struct platform_device da850_evm_tl_leds_device = {
. W; y! D' m$ W0 A        .name                = "leds-gpio",- \" W4 S. v4 S0 r; t; D
        .id                = 1,
$ V8 `* [& _- ?# R8 |- T        .dev = {
$ ]# Q7 Z, R+ F* `' f- J                .platform_data = &da850_evm_tl_leds_pdata,4 G1 b) O5 M- ^. P) \$ l
                .release = led_dev_release," P* ?# @5 T2 f- e1 W' L
        }4 P! E4 L  y  b+ e4 V& ?
};7 D" i# l; q0 x# w7 l! l* ]  |% h

4 J/ p3 v9 M: K7 N; rstatic int __init led_platform_init(void)5 s  o0 F) J; o  ^& c# l
{. k) f9 {& f+ X" i& `
        int ret;$ @# l! p- J* C7 Y; M" q/ H
#if 05 o" B2 F& F+ C. j6 U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% K; ?1 h8 T9 e  I( r* G3 N
        if (ret)
3 `0 V+ R1 h4 ?0 F: c) c3 z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- `1 p) K5 V8 t& q- g4 F
                                "%d\n", ret);
+ r  @+ L8 N2 X2 m#endif. A+ g. @! p: J! @
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 Z5 y/ T8 `4 w* w        if (ret)2 ?2 D8 [; f& l- K, u. ~$ Q
                pr_warning("Could not register som GPIO expander LEDS");8 n- ~- V+ P7 n" p, Y  N3 N; Y+ N
        else
  y4 f: X4 [8 s" C9 ]. P: \  v                printk(KERN_INFO "LED register sucessful!\n");
  U0 F* T0 D$ _' W0 y7 N8 L; O+ `! v. x
        return ret;+ Z0 |9 L7 I9 J& u
}
/ C6 u: R3 i& l' l% c
! q- G% N. W# Q* s5 ]7 {+ @' E- g. Xstatic void __exit led_platform_exit(void)" e$ a- }- B" p2 @
{
+ r# ]* h- w# S# J. u3 u+ Z+ i        platform_device_unregister(&da850_evm_tl_leds_device);
- J0 {  q, t6 p; L
8 r/ H& _* M; A- b        printk(KERN_INFO "LED unregister!\n");
" k% M6 Z7 {6 b, O' Y* c6 `}' ^/ ?9 g1 {- E) n
7 }% |. Y2 G, `% u4 V. r
module_init(led_platform_init);* s2 G' w( `& w  X  }% z. p4 n
module_exit(led_platform_exit);
- H( W) ]0 M. A1 r' w) {& v, _: ?# ~7 ?, C7 M/ Y
MODULE_DESCRIPTION("Led platform driver");
" |; _$ ~) t) E- r. B  e: `MODULE_AUTHOR("Tronlong");
) X3 \( B+ n) H1 rMODULE_LICENSE("GPL");
% ^, W% j- r, I
5 n. [2 R) i! |% R+ @% T5 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 02:22 , Processed in 0.038135 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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