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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) C2 W2 X7 F7 Q9 w7 r; g% {) h  i2 P#include <linux/init.h>1 u2 I0 Y9 F2 e1 k
#include <linux/module.h>
8 q" @3 `  I3 V#include <linux/kernel.h>8 h, x8 F; K' l0 E+ b" r
#include <linux/types.h>
" r2 |/ B- N, P/ D#include <linux/gpio.h>
. X4 B# v/ y( s9 B- v2 m& }#include <linux/leds.h>
1 C) |+ W; |! x) h#include <linux/platform_device.h>) F  l; c: Q4 }* D7 Q$ f# K

3 w8 ^. y  R" j* W) F- z" q6 p3 i$ n" Z#include <asm/mach-types.h>
% l# @* v( e3 C5 r! ^#include <asm/mach/arch.h>: c" ~' H8 g' I- x8 l1 m9 Q6 q
#include <mach/da8xx.h>( c. O5 b' J, x$ o7 u
#include <mach/mux.h>; C6 A+ b3 K% o' r

) p9 N1 q" V% H; v. X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 u0 J7 V& {: @9 ]: G" H' s0 P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' }! ^/ U5 X) K, ~' o" ]& v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ Z% h0 R9 R9 P; y  _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. p, x% Z8 O* I; T" a( i  R) @( [* A; C0 K4 U: o0 v$ B
/* assign the tl som board LED-GPIOs*/6 @2 M1 _1 F$ A3 }3 J) w
static const short da850_evm_tl_user_led_pins[] = {: P8 D5 }- e- u! S% L0 l
        /* These pins are definition at <mach/mux.h> file */# R/ B/ A: `& y: x" ?2 k) l) Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: [" U7 p  `" F, B        -1
7 N# o  e/ R) G0 j' L& Q4 R  S};2 M. v$ ~! T; K% a. c- `
0 G! v, {1 L' }1 E& [6 M
static struct gpio_led da850_evm_tl_leds[] = {
' K9 ]6 H0 F. ]( R! X2 }        {
' ~* ?( q( {0 x4 M* Y$ M9 Y" Y                .active_low = 0,
" b- s  |; Q& q                .gpio = DA850_USER_LED0,
8 B0 H4 ^# @. C' S$ Z                .name = "user_led0",; y( {6 r3 f5 r! j! t- u* E
                .default_trigger = "default-on",, a* @; n1 w0 \' n, ^+ y7 e8 Y; g
        },' }& j. o$ ^- [" k0 e$ V$ s. r
        {* e  `4 P. C* D
                .active_low = 0,0 [: K8 S: O6 t. l$ z
                .gpio = DA850_USER_LED1,
9 Y/ ^4 b( U8 t) X" Q5 D8 t                .name = "user_led1",& I) B+ n( e) R1 S! d+ E
                .default_trigger = "default-on",! m6 B2 Q; {+ @6 z1 _
        },5 Q. ^0 S) Y$ \
        {
$ {( F5 f' `$ N/ }+ E# m                .active_low = 0,5 w) f7 b8 X4 N1 }
                .gpio = DA850_USER_LED2,
0 t% h. x4 m4 m' v' b                .name = "user_led2",5 c) ?3 I; K7 g! B& C4 W
                .default_trigger = "default-on",/ a# y7 j8 p! E9 T& z$ q( y
        },7 ?% B+ x" d: e. O- L6 l
        {# U* y1 u: B" a$ n& I
                .active_low = 0,
. o' p$ d) x2 w* f. w/ l: N# [4 F                .gpio = DA850_USER_LED3,
1 E: B& [7 c/ ]& D4 r                .name = "user_led3",( `( h, ]. w! H
                .default_trigger = "default-on",8 e7 ~# w& }: ^) Y5 }
        },2 V* s9 h9 x* V
};
/ k$ v, [. \6 v# e- M) ^
4 k: ]; p; s1 Y. Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 I* X. i0 w' \, D
        .leds = da850_evm_tl_leds,
  B! s  C( y% P; j4 U$ l        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; N( R7 O. Q. P& l4 Q
};2 a  o4 n# ]. D1 H, I" F1 L' j
0 N& X* i+ a7 {1 V# ?
static void led_dev_release(struct device *dev)
6 k- c' H& w0 |7 D{
7 Q* y/ Y  |8 V: y6 q};* v7 r! J5 m; [* J0 @7 _% P

$ l1 k; e+ @% }8 \static struct platform_device da850_evm_tl_leds_device = {/ H8 Z4 j0 H! z6 C( N0 T' U. d
        .name                = "leds-gpio",) b- v' C4 ]" U! A" b+ {
        .id                = 1,
8 w- ]# }  W% i7 W% E' U+ }        .dev = {1 z; f' m+ n  R" r
                .platform_data = &da850_evm_tl_leds_pdata,4 S9 T. p( Q( ~# P& T! i. l
                .release = led_dev_release,
5 ]/ W  |" ?7 x5 Q7 \5 S; G        }- V9 h7 k5 S: A: `2 a6 p
};
1 x1 [7 {6 w! |; n: u% u' N1 W" I) [( {
static int __init led_platform_init(void)3 |2 Y' Y5 q! u  d
{8 b3 J4 S) p3 m* r' c$ l
        int ret;
; u' j* l1 q1 H- e, L" J9 d#if 0
2 d) C0 V7 y  f0 k) c3 {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* E8 K  w0 [! O- Z- b
        if (ret)
* `. J8 N/ ?3 i0 S2 z1 W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ q% Q' j& G2 \                                "%d\n", ret);
" N- d# y( n( @+ s2 t3 k#endif( \: j+ X, d8 _" Q) P
        ret = platform_device_register(&da850_evm_tl_leds_device);* C) x; L# Z2 a  u) z! g# |
        if (ret)# j: B6 K6 H  V8 P+ o3 R
                pr_warning("Could not register som GPIO expander LEDS");
( k5 [- T, \( d5 s( i# b- L        else2 u& a. g" u2 s
                printk(KERN_INFO "LED register sucessful!\n");
4 e( F) ]: {7 \
7 E/ I( L% u+ v1 I3 n        return ret;" k6 B8 D4 Y' X
}
7 `$ O  l0 E# H$ r* @( [( A* G, s& {" v6 R, J7 W% `& s! q
static void __exit led_platform_exit(void)
+ q, K. O% C0 P+ E$ N& i{
3 ^  j) h& Q3 v( u. Y2 f& y" K        platform_device_unregister(&da850_evm_tl_leds_device);
: e; |3 }& n6 P! v' Z9 m# R; E1 `) u
        printk(KERN_INFO "LED unregister!\n");
- M' J# I8 G1 I}
4 F; S- B* S5 Q& N" G2 `
2 i7 n0 E( f; L5 f$ x+ f# C+ a5 I, m3 Emodule_init(led_platform_init);0 H/ u) o8 Y0 R1 m
module_exit(led_platform_exit);$ Z8 e9 l9 K# a4 S6 z: a, X$ Q
/ X" x$ l1 w( g$ o% J6 g. a
MODULE_DESCRIPTION("Led platform driver");6 h. e/ }5 C+ F5 ?! q
MODULE_AUTHOR("Tronlong");4 J7 n2 ]$ w) G/ x( h1 G/ i
MODULE_LICENSE("GPL");
5 {4 @8 q" U1 W5 @$ q( m& S9 X( i9 A" w* k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 22:38 , Processed in 0.039720 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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