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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. p/ y4 u  L9 }7 ?' X: Q4 K
#include <linux/init.h>
; }& L; i& q8 o" G  v* n) |9 `#include <linux/module.h>
: G* d+ p( l. B  w% t* p$ @0 `5 B#include <linux/kernel.h>8 z6 |  p5 {3 x# A% c) }3 H
#include <linux/types.h>  Q" L" o" i7 Z0 y- ]: r( F
#include <linux/gpio.h>; F) o$ E: y' A  g
#include <linux/leds.h>
3 H9 J+ b8 h5 s' X7 ^: D$ A#include <linux/platform_device.h>
1 a5 w3 M3 d  M; k! W# S2 N
+ Q! N8 f; Y. C#include <asm/mach-types.h>
! E! m! R. f3 ~! v8 r' A#include <asm/mach/arch.h>
) J/ S3 `) q# ^/ |3 {/ L% a#include <mach/da8xx.h>
& h8 l9 l! z& g* X# k2 j#include <mach/mux.h>
) ^0 c& \$ l3 Y. x8 D
  [. l8 d3 F5 T7 h' {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) n6 {$ A9 H1 X5 M! }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& m9 J: ?1 k; W7 T( ^/ k( D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: h' @# o& \- S( @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# M% Q$ ?# h- ^! G. W8 w! M
& N& Y5 R2 e1 [- W* s/* assign the tl som board LED-GPIOs*/1 d2 e9 v% l- K
static const short da850_evm_tl_user_led_pins[] = {
, T" p5 h; Y- n1 K) F" K        /* These pins are definition at <mach/mux.h> file */
) E  l2 O$ D+ G/ D, K1 Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 Q, k( A3 ^2 E6 \: f( F" r
        -17 S6 r* D4 v" Q8 @, w& A
};; |- m- m5 t' @0 O4 b
  i" _& B' F. ~* n2 i# h* m
static struct gpio_led da850_evm_tl_leds[] = {  h! r7 F5 Q$ d$ u: y, E. m7 Z
        {
# K' j7 R- W9 F                .active_low = 0,4 `$ _! H; y# D9 C8 A
                .gpio = DA850_USER_LED0,
" y$ L  p2 J( c' g) m                .name = "user_led0",  k: i- t7 L" S( s% J
                .default_trigger = "default-on",( h/ j$ x; w# A0 W2 u
        },' j% O8 t" O+ H& Z$ f
        {
7 [; `/ r) Z- M) y                .active_low = 0,- K* P- ~- o$ N/ N: T/ a8 u+ `
                .gpio = DA850_USER_LED1,
- r# [. t+ [; v3 e                .name = "user_led1",
5 u0 M" B6 M) L1 e                .default_trigger = "default-on",
/ n: o% P4 U- B& `5 U/ p0 K1 Y        },
% i1 \. Y- h, f8 n$ Q        {# R) W% T, S+ P2 c: ^; L# Q3 L" ^
                .active_low = 0,  ]$ ~2 s/ I5 [
                .gpio = DA850_USER_LED2,9 ]( c6 ~; E, K# u
                .name = "user_led2",8 N5 S- }9 x. j4 S& M
                .default_trigger = "default-on",  G( N4 Y# f$ Q- `. @- u1 E
        },
8 d, ~+ y5 [$ y+ {. ]        {+ p; M  m  q! P( x& H6 e
                .active_low = 0,& Y. m4 M, R; V/ U1 t$ d
                .gpio = DA850_USER_LED3,% q5 ^% \9 O9 O0 x( i- W% N
                .name = "user_led3",
7 Q, w; t0 B) F  \! L! t- }% N                .default_trigger = "default-on",
& I3 z! u) B3 Y9 A; i9 |        },
: }( G7 \2 D0 Y* _};
$ Q  r& }, F* c; o% ?9 H# b$ z7 e& a0 o  F6 v4 g, b! k& k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 F, q. \4 H+ u7 i        .leds = da850_evm_tl_leds,% q. d8 [+ |6 i! Y$ X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, J! s' c3 d. c8 ?" i};
4 W" s; g) D0 k0 c" S( _* Z4 u  A) ^% q
static void led_dev_release(struct device *dev)5 |" T9 \. U! ~" k
{
" U% n; [7 W4 s# d' y};
5 u" ~5 c" h* ~1 @5 C- P
1 [2 e- z  [. k* d( _0 ?. C' v2 U0 ~6 bstatic struct platform_device da850_evm_tl_leds_device = {8 g5 i+ c4 n7 N2 G* \
        .name                = "leds-gpio",
: h8 `, H5 q! ]        .id                = 1,
5 M9 G. W; P/ E6 z0 M% X/ ~        .dev = {
% }4 |! |8 ~5 l                .platform_data = &da850_evm_tl_leds_pdata,
. U* `' l3 _! Y6 u3 d7 U8 K7 T5 c                .release = led_dev_release,! F6 C% `2 E$ B1 \5 z
        }
- P" @1 K7 u4 N};
1 l: B+ J! e6 j; h* X
9 I. R5 i! M* Pstatic int __init led_platform_init(void)( J2 m  }% ~9 e3 ~% [! Y
{
8 j4 B. A  ^5 M7 y9 m! j        int ret;. F, M0 O: D& n* K9 p6 p- C( Q
#if 0
* E4 |4 B7 ]% P- {- u+ L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 d) \: t0 ~3 j4 V. b        if (ret)
1 G. v8 |( W9 M  f/ K2 u0 h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 m! [5 l: }3 L/ C                                "%d\n", ret);: _8 D# B; \/ v  h
#endif6 G1 H3 \4 S, X2 l
        ret = platform_device_register(&da850_evm_tl_leds_device);+ w" _- B: U1 ^2 t% E# {( _8 J
        if (ret)8 G$ t5 V, \' `2 T# c1 ?
                pr_warning("Could not register som GPIO expander LEDS");' n$ W8 ~1 ]2 a1 I/ u. U5 \
        else
1 |+ k% H: o6 z! r# E( @                printk(KERN_INFO "LED register sucessful!\n");
. i" v' h/ @! H& u0 M3 I& N
8 R! ~9 y, \5 w        return ret;) e2 |; G  V6 I8 ?6 J
}8 R9 `! V7 u6 n9 H1 q) P3 Y$ u0 n# ]

  s6 L. M5 c; r0 r2 M/ astatic void __exit led_platform_exit(void), s* E1 O& K! H2 u
{- p8 G6 k' f: o& x4 }) N  v
        platform_device_unregister(&da850_evm_tl_leds_device);
0 ]/ l- ?& h! n' a1 a( n4 {
8 I# i9 `7 m9 T$ F- j        printk(KERN_INFO "LED unregister!\n");
) x! t5 o: Z; Q7 j6 D1 Q6 W  D}  U* Q$ U4 r) o, f" P. u" g- K

3 S' W# \$ b5 N3 P1 i, kmodule_init(led_platform_init);
) E7 H& {+ G' f6 ~module_exit(led_platform_exit);* `0 }) M* e; R$ e' D( y  l+ w  S4 m. N
" g! t1 |& w. J
MODULE_DESCRIPTION("Led platform driver");* I& D& m& F# u0 G: Y& ]+ g& K! c
MODULE_AUTHOR("Tronlong");/ l$ P- i* w0 y' W& M
MODULE_LICENSE("GPL");
4 W" T7 t) a6 n- |1 f3 Y+ A4 u
% y# o5 Z! ?5 B. H1 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 05:32 , Processed in 0.040381 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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