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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ P+ l) b4 E5 `#include <linux/init.h>
/ B) h7 ?% L3 C* G. k. k7 f#include <linux/module.h>
, p! ~$ P( X0 X0 ?#include <linux/kernel.h>3 p: A1 \  {; z9 C3 v4 U2 o. w
#include <linux/types.h>
. I4 I# `3 g) W; i$ k7 W/ [#include <linux/gpio.h>1 ^$ d. i- v9 ]7 \/ h
#include <linux/leds.h>0 b- P1 W4 O7 O7 ?  f' _, d
#include <linux/platform_device.h>
, O  o. D. v+ l4 U% G0 X# w$ i# M
" w3 F1 y; h6 C- _8 R7 U7 p4 S#include <asm/mach-types.h>8 j  |" A/ v# o* A$ j
#include <asm/mach/arch.h>( e) X4 W/ W) b' f" u
#include <mach/da8xx.h>
5 `6 Y7 o' W- U' I#include <mach/mux.h>7 Z. F9 C4 O5 F3 v6 p
. l, T6 Y6 R7 b  Q- f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" M6 Q6 |' g% K. v- c- z1 Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- t7 F1 e& n9 y) U) T& T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  M5 i) A4 v9 ]' w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 w' ~+ }4 C; R. Z9 Z4 b/ o: [* u- b; L( @  ~
/* assign the tl som board LED-GPIOs*/* u0 G& X/ Z3 }3 e" J. ]9 L' L
static const short da850_evm_tl_user_led_pins[] = {
2 t9 b: e: l% w0 |        /* These pins are definition at <mach/mux.h> file */! l9 n4 M. }0 f7 Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 e/ c6 O' u4 A$ I. p
        -1
) I4 O/ t4 M+ C8 j5 |5 D4 @  E) m};0 {! h/ [' w# r7 T* w

( p6 J  ]- d) Tstatic struct gpio_led da850_evm_tl_leds[] = {
- N/ p) Q1 n4 C) ]$ a        {0 v% y' E9 i% S
                .active_low = 0,
4 Q7 v2 A# s$ R" V& f. x: m! o                .gpio = DA850_USER_LED0,% e' }; @, `! F' M
                .name = "user_led0",, D+ w/ l- V# p
                .default_trigger = "default-on",3 U* ]6 D. }3 H
        },
. E3 E2 }$ }* D* q        {
8 X1 ?7 i2 Y3 N0 H  @                .active_low = 0,
9 P# f4 X2 X" I! |7 u3 v+ N                .gpio = DA850_USER_LED1," V6 ^, {( |, |/ O' X
                .name = "user_led1",. I3 ]8 [( `' n
                .default_trigger = "default-on",, o0 D3 {2 W' j
        },
- K4 q) w. T+ v  o2 K, G. b! R        {( V: [8 G% n) h3 `, F; `
                .active_low = 0,
) y+ w8 N0 v( ?, k0 L  X  w7 e# K                .gpio = DA850_USER_LED2,2 N0 i$ R* V! p; R5 q
                .name = "user_led2",, P$ z4 _5 ?/ u4 R
                .default_trigger = "default-on",3 _9 j( D! x2 Z
        },& |& i% ]9 W5 P0 V. d
        {4 o/ N* ^' [# [
                .active_low = 0,
; }8 T1 n8 @2 v1 S* h7 {                .gpio = DA850_USER_LED3,7 O2 A9 L. B0 F6 l
                .name = "user_led3",
2 k3 i% J- E1 ^# p2 S                .default_trigger = "default-on",
4 D2 I, {% G; i# j) Y) U        },
3 [$ L2 v, s/ r3 K6 y% f& g};, p$ q6 i* x/ d4 p" G* ~
  O  f: E& G" a" l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 u7 n9 ^4 ?$ r# E9 c3 p        .leds = da850_evm_tl_leds,
% V( ~' R5 R$ \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 N# G* h6 l7 f6 P) Y: _
};
+ ?% k- v; ~+ J6 Q6 o. \, c
( W8 \% E9 s) ?. K$ A6 zstatic void led_dev_release(struct device *dev). t3 d, @! R4 I, G& w; K
{: C2 ~% R3 t5 _/ f5 f* n; f
};( V. R, D  ?0 d% E
( Y  Y% L0 E8 n
static struct platform_device da850_evm_tl_leds_device = {/ X3 [% Z4 ~+ e6 [' [& G
        .name                = "leds-gpio",
3 I6 D6 c4 ]# d8 t3 {4 X5 n        .id                = 1,8 ]2 l4 Z* [8 @0 _
        .dev = {: J1 M/ x6 Q4 v% m; K: ^9 t8 [
                .platform_data = &da850_evm_tl_leds_pdata,6 B: u7 f) w. J5 i1 p: e
                .release = led_dev_release,
3 S) m' a! [* l' q# Z/ J        }2 `8 C' x% w" n% B# g
};* @5 E8 ~, N% Q  C' A6 P

- L  W3 J; F, r7 bstatic int __init led_platform_init(void)( I+ I; T8 R, R# P, ?2 K
{" \9 l" x4 J: A+ p; ^# O5 }" W2 Y
        int ret;
6 [  U1 I$ c; f( C7 P& ^& m#if 0' x! B. Q9 P1 A" C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* A+ }/ A, p4 E1 W8 g7 x
        if (ret)
) {+ _9 M$ E. h! G3 ^: ~) f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; N  y* g3 e; ]3 e8 X  ~6 j                                "%d\n", ret);* K# p" R  y5 v/ V
#endif
+ I8 l! J* j4 M! a- N9 p        ret = platform_device_register(&da850_evm_tl_leds_device);
" F: N1 ?+ p4 Y        if (ret)3 @& F4 z' l0 G" f9 e- }
                pr_warning("Could not register som GPIO expander LEDS");4 c' T0 L" K# i* T- K- G1 v
        else/ k; S7 Y4 Z0 |# R" x
                printk(KERN_INFO "LED register sucessful!\n");
7 R2 A7 F" X- X3 T% V) w- V
# Y1 ^: A6 d, @% B' E4 q; j$ ~        return ret;( v; o0 K' d+ _  ?& i5 W2 e
}
+ p$ t2 ^" D3 s8 |: |+ ^# s! {+ F% h) i6 ]+ v) B
static void __exit led_platform_exit(void)& Q8 i0 q" M, m) c6 _7 e9 d5 ^
{/ Z2 a4 J8 W( A! I
        platform_device_unregister(&da850_evm_tl_leds_device);- Y% m# R5 d6 a

% }  Q+ X: [; {4 z6 ]; t        printk(KERN_INFO "LED unregister!\n");1 I9 s4 g' j' b& t
}
, ?  k& e+ j: _# N6 ]3 n( Y7 p2 [- K, B6 u: Q
module_init(led_platform_init);
5 ~" n3 Q# f* \2 C/ y& Rmodule_exit(led_platform_exit);
  l) u! |. T# G# d
3 m/ q' ~- k5 P- {. hMODULE_DESCRIPTION("Led platform driver");
* ?6 T; h. ~3 m2 XMODULE_AUTHOR("Tronlong");/ u/ U! t) \0 P- ^' s
MODULE_LICENSE("GPL");
9 M3 h( j; e- s8 n
1 |' `# ~7 Z+ k) N2 W- z5 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-28 04:51 , Processed in 0.041405 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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