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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. N7 T4 i0 W  R6 u
#include <linux/init.h>
8 [+ W5 }- Y" s+ M+ h0 g; i#include <linux/module.h>3 \) l8 ~1 s! A! p
#include <linux/kernel.h>  ~2 j3 e6 l) a/ i/ d
#include <linux/types.h>% S- h8 z) T( u- E) r
#include <linux/gpio.h>, Z; i& }) \. ^8 a1 r: T5 \; p. I, R
#include <linux/leds.h>9 U1 s; h* X9 _9 B
#include <linux/platform_device.h>. C% q/ O1 k3 l  M6 Z% N

/ t, q5 u# q5 K: T2 O: i6 P0 e#include <asm/mach-types.h>+ Y3 f" X1 b) y9 A
#include <asm/mach/arch.h>( _1 ]; ]/ _" a2 K" f7 b: H
#include <mach/da8xx.h>
0 |2 x4 l2 |$ z* E#include <mach/mux.h>
7 E' t) C; N( V2 w3 f
4 y/ |% M% u% [8 }8 L' _#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 g% n0 N1 Z6 P3 w) h5 w6 R, a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 \% K) o: M8 [: m0 E5 ^7 b9 O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" V5 l- R. H. \
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& z  A2 s) P3 y8 s, _9 j# T7 `4 r. f* x3 K
/* assign the tl som board LED-GPIOs*/6 H0 @1 _5 g3 {$ ]2 j5 r: M
static const short da850_evm_tl_user_led_pins[] = {
+ V+ S9 J4 \1 ^        /* These pins are definition at <mach/mux.h> file */  [5 w. @! s3 v  J) p; G9 @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," [- s: J/ p. k# k  U
        -1
: _* ]$ \$ E5 @3 l: X; C};* k( i3 o' M* R) O
" D' H! m& J. R: h
static struct gpio_led da850_evm_tl_leds[] = {
. G7 K# g9 L3 s6 {: z7 n; I        {
3 Q( @; i) s8 B3 v& h3 G2 m                .active_low = 0,; ?" V2 C- R/ T+ A, R1 R. j
                .gpio = DA850_USER_LED0,5 e" u8 V4 D* N: L1 U# w, C5 [
                .name = "user_led0",
7 v9 b( W, S  }  f& i                .default_trigger = "default-on",% C  \# x- u5 ^' E7 _) e
        },
- D' M5 ?2 L4 `9 @% U        {! H( y$ {0 P8 E- S
                .active_low = 0,
) |4 p! d: S$ n7 {# K# x                .gpio = DA850_USER_LED1,8 @7 P2 y' ]" `+ Y' K6 Q! \
                .name = "user_led1",
( ?! b, T% ^7 g                .default_trigger = "default-on",& H9 k7 ^5 W* x% g- q" K$ |
        },
2 x; H  Z$ q8 t4 Q& [  ^        {$ w! Q% W; [* |( ^& d
                .active_low = 0,
6 D  a* ~8 P: `4 ?$ b+ X: `                .gpio = DA850_USER_LED2,9 X9 N4 z4 H# Z# [9 Y7 H
                .name = "user_led2",
8 ~# N1 w" J1 i/ Y* O                .default_trigger = "default-on",( X$ f8 ?  K: E
        },
0 N; x" p% k; d        {% B2 i  t1 f6 s, w3 p6 s" S$ M
                .active_low = 0,
) m, L/ {8 z8 m7 i0 {                .gpio = DA850_USER_LED3,' O' |* Y8 y# H( l
                .name = "user_led3",7 ]! m' T* S) T! B# F: I, P* K$ w
                .default_trigger = "default-on",! F. W9 c& d, o/ `) k3 T/ D2 t/ H
        },4 M% W6 E) u$ O* a& e
};
$ C' J4 H$ s( ^' ~* v- m# q( w! |* G4 Q8 t1 K$ I5 `/ e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# P: E+ U  _: H6 P- t
        .leds = da850_evm_tl_leds,
6 z  |' ^' I3 [* }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 r0 I1 ~! X5 p' P6 {
};! q! j# K( y! n( d0 D$ ^$ N

! X( r1 a% M/ k5 U( o% Astatic void led_dev_release(struct device *dev)
7 l$ \3 n" o: h0 E{5 e& P5 e/ i$ ]2 ^' _
};) k- a5 w9 K. E) ]; s6 P/ k3 ]* @

0 Q: f5 M  x" X0 S/ sstatic struct platform_device da850_evm_tl_leds_device = {* q+ }( \3 o; @* t4 N% n$ C) d
        .name                = "leds-gpio",4 D" d3 R6 K6 ~! O4 a7 ~! J
        .id                = 1,
3 l7 u4 J! I1 U( Z1 o        .dev = {8 W, a0 J& C0 _  E( `
                .platform_data = &da850_evm_tl_leds_pdata,
2 M. S3 ?) U; |& M2 [* w9 E                .release = led_dev_release,
5 H- |9 A5 k1 D  R$ J& H' v        }; r- q7 P, R' b+ j
};
3 B; J) X( S+ W. i. d* `% L8 T2 Q4 o/ u; r5 F4 h
static int __init led_platform_init(void)- O; D3 L5 L8 M2 W* r1 ]
{
/ }- x6 D! T5 {- F0 U+ s7 W        int ret;; q0 S9 Q, O7 y  @( P+ j3 T
#if 0. l  a2 L" k; m# b$ J
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% }) f/ ^* y5 I+ \: H
        if (ret)
- R9 I, F3 O# q9 F5 C: |1 c$ H3 O1 }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% ]- j6 M" }- r- H5 {  V  f( ?! T
                                "%d\n", ret);
" X0 @6 s5 O! ]" I#endif, Z7 s: I8 [6 g& n% ?* u3 ~# W
        ret = platform_device_register(&da850_evm_tl_leds_device);
( a3 I% C2 i; N        if (ret)
- t, V/ ~* s, @  N% i; H5 ^                pr_warning("Could not register som GPIO expander LEDS");
, V  \5 L9 e" {- @2 ^: j! u; p        else
& G, `2 x  w: V1 h; j5 e                printk(KERN_INFO "LED register sucessful!\n");) l: e' ^' X5 J9 Z) m: o, @7 b

$ z5 U, u) S& p5 Q        return ret;) P2 K6 D" d- k
}. j  i' I+ Q7 e8 j' n
+ `. A( J& i( f' Z! j1 C" H
static void __exit led_platform_exit(void)
( V& [" g+ u" g; V{$ @! O' S( J+ W5 i. {% J) R
        platform_device_unregister(&da850_evm_tl_leds_device);" Q3 ?9 h% ^3 j

- [3 V, {8 b2 Z2 b        printk(KERN_INFO "LED unregister!\n");
- a; g/ i6 {) s}
3 x0 T* z7 Q7 o) ?3 k6 D8 n3 p
. w/ P" ?! ?$ P. q& U/ T3 \/ gmodule_init(led_platform_init);' [9 E4 ?) `) O% E. `
module_exit(led_platform_exit);
3 A* {" ?1 [" B; j- e
& M5 y2 K- Z& p/ _* g5 MMODULE_DESCRIPTION("Led platform driver");
% J* o+ S; Y3 T% UMODULE_AUTHOR("Tronlong");  @, t4 u, D6 G8 H
MODULE_LICENSE("GPL");! [) i  E- r, w6 M, K6 H) I% l+ p7 G

! e0 b: p1 a* }9 j! K  m' o" W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 09:11 , Processed in 0.038860 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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