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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 k3 ]/ i# J- |8 _7 W
#include <linux/init.h># _2 d+ s1 z4 _# L
#include <linux/module.h>0 w0 d/ Q- v1 }8 y3 `0 R: _" i, x
#include <linux/kernel.h>: \6 h, ^! M+ E2 z! A& X/ M
#include <linux/types.h>0 G: Q2 v! B0 q) y8 @, b: v
#include <linux/gpio.h>
+ `2 n' f8 b4 k- ~4 Z#include <linux/leds.h>4 P9 [; [4 q& z8 j9 A( T! e* j
#include <linux/platform_device.h>
/ h6 t0 ?: V; J8 v5 {* p# X/ y5 f
7 k3 Y) s- O- A4 X' Y: N#include <asm/mach-types.h>7 F6 c5 N. x6 h) ?& l2 b( E  I
#include <asm/mach/arch.h>3 J2 c" \1 `: s
#include <mach/da8xx.h>/ a! W, r" e4 c. v) C$ k
#include <mach/mux.h>' m( o( L+ M' G7 F( c" P
( |/ w2 M  A6 z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' D8 O, ~3 N5 U  ^5 F  M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% g3 N. Q" x- K3 _3 p/ Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' u" X" t- `. D( s+ I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ P8 w/ _6 L- |5 q- f" S

% {$ b, _! H2 b& _6 ^, h! F$ V/* assign the tl som board LED-GPIOs*/
& X5 l9 O/ w! f: W5 ?$ O0 t) t2 B( Jstatic const short da850_evm_tl_user_led_pins[] = {' J- c/ S0 Y8 i$ C1 N; j9 w; w( p
        /* These pins are definition at <mach/mux.h> file */0 L* h8 T7 E, `. [2 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ p) E1 I3 v* u/ R) m
        -1
, L5 N( s5 ]- ]4 _# f8 ]* F4 q};' ~: p# X- L, K7 I7 g
  p7 V* x+ @% d: \) ^) ]
static struct gpio_led da850_evm_tl_leds[] = {
% [. o+ C4 m# d        {6 x' v+ Y6 e2 y' q) O0 X
                .active_low = 0,
4 X# P0 v! `( h3 V- m9 D; E                .gpio = DA850_USER_LED0,
; j$ b2 c( k, \6 y' t                .name = "user_led0",$ n6 O$ a! b5 k- m# R
                .default_trigger = "default-on",
1 e& F7 ^7 `+ ~% s7 n' Y7 Z        },
- s: h7 ?, w2 v) _* `* I: e        {9 f& {& k* q, X- G
                .active_low = 0,
0 u  l3 K0 P% E6 h                .gpio = DA850_USER_LED1,
5 ]& t' }' @$ F6 C3 t$ m& e                .name = "user_led1",5 [8 @6 ?1 J. z1 `5 e( J
                .default_trigger = "default-on",
. w, x% M8 N7 Y! k        },- y/ M$ ~5 k4 E
        {
2 N. V. v* Z, e4 ~( D& x/ U                .active_low = 0,
% L: R. G1 y- F! H$ q                .gpio = DA850_USER_LED2,
' K( J  v! w/ N# {- ?. Q                .name = "user_led2",4 E5 M. C: t) I; C; o$ P
                .default_trigger = "default-on",9 q1 C3 T( _' Q5 U, X! Y
        },
1 S" f0 o3 {- S2 ~4 `- k8 P( |        {3 F4 l! r' K& d" H, j$ Q, N$ {
                .active_low = 0,
. Z2 Q" P* g  t5 i8 ~/ U  s- S                .gpio = DA850_USER_LED3,& u' M( u6 B7 w: J$ O- X  C
                .name = "user_led3",
3 i9 i/ }5 j1 C: w$ ~6 h; L8 G                .default_trigger = "default-on",( d# D/ p+ y- V+ i# W  ^
        },8 C6 [8 h9 h  |) @( j/ w
};
4 @5 ?  z. l# g% v; B' T0 b
2 @; I3 X. j7 j" E- Q( \" i+ cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 F- J: Y4 Q9 p" r! O        .leds = da850_evm_tl_leds,
8 r* i! B6 K5 N5 h* H& o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 F% e0 ^: P: P" g% L$ e};
6 a3 W2 }6 [% J+ V0 f& t" K" g$ K* I# i+ G# z' ^: j" H
static void led_dev_release(struct device *dev)6 V5 _5 d! j" c% O* k8 v
{9 z9 H. ^, h9 M6 Q; ?
};
2 X  J5 o, D' ?/ _3 G4 o7 \# ^
* `! L- ^0 c- R. k0 cstatic struct platform_device da850_evm_tl_leds_device = {$ G7 c0 a( i! G
        .name                = "leds-gpio",& |% _! l4 u1 U2 g
        .id                = 1,
' u' V+ ~; F) L4 T        .dev = {
7 Y7 N8 T  q" T- I2 t                .platform_data = &da850_evm_tl_leds_pdata,
% Y" i9 t/ W9 n6 p3 Y: K                .release = led_dev_release,
" b- ?: a* @5 `$ Z1 Q  _# @  n- o. Y5 i        }
/ E+ S, D% T! p* G};
$ H' _% U* R7 E( f7 v" J7 w/ m( q% e0 E3 A
static int __init led_platform_init(void)
. _  i# o1 p+ L5 A; }- K/ a( ~{6 f" B" @; s7 w% N' z4 K, x
        int ret;
2 t0 M* T. @" c8 B#if 0
, T8 N+ A9 y( S# ^0 y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 v% I- |, k! J, x! N% }5 c: Q
        if (ret)! D( @5 e) {3 c+ p! S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( y  Z& g9 t2 z7 Z+ ?! [+ ]                                "%d\n", ret);
, X' D5 j) A6 j% O7 Z" A#endif
0 x  v/ |! `/ u2 z0 R. ^        ret = platform_device_register(&da850_evm_tl_leds_device);
' [; G* Y2 O2 o- ]+ a) C$ d) Y        if (ret)
0 i; x4 w) ^# A# l: j                pr_warning("Could not register som GPIO expander LEDS");6 U; I* e( ^; Q! X
        else7 Y3 U4 U* ^  s* `0 r' R
                printk(KERN_INFO "LED register sucessful!\n");
. j' P" ~# f% g# J, T$ M1 E! A. @& D& H8 l, `4 d" j2 w1 e
        return ret;- z6 v( _5 _% V, v& d
}* ^6 w8 I# R6 V5 z# G5 U+ r& f2 q0 B0 x
$ \0 i! j: o! z& |0 @, M6 u
static void __exit led_platform_exit(void)" ]2 o9 G5 t% @/ @
{
+ u% j* K$ H/ g; _        platform_device_unregister(&da850_evm_tl_leds_device);$ P9 `3 u1 ^, P- m# N2 j$ v$ @

% Q5 i: u4 A! b8 F3 M# B        printk(KERN_INFO "LED unregister!\n");6 S' S% ^' @8 Y! ^) J, `
}
& d; o* S# m( l8 n& s, {! k8 ~# s- X1 w" X( P. l
module_init(led_platform_init);- n- ?8 F9 W3 V! ]
module_exit(led_platform_exit);
" y/ E! K% d% }+ G
4 q5 I/ |. w/ V/ i) dMODULE_DESCRIPTION("Led platform driver");
7 v9 x0 e- x+ g% A  Z3 ?4 OMODULE_AUTHOR("Tronlong");
0 ]/ z4 c3 I; m6 s5 YMODULE_LICENSE("GPL");: F% a# K6 B! O% F

& h5 _+ k) F; I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 11:06 , Processed in 0.040430 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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