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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; ]$ F/ @( v" G- n1 g#include <linux/init.h>; L! m, }% w8 j# R3 `. P! ?7 d
#include <linux/module.h>" h( S0 z% o* K. s+ g  o
#include <linux/kernel.h>
* i: S7 b3 l: {$ [# f# r1 t#include <linux/types.h>6 v8 J! G7 D$ c
#include <linux/gpio.h>3 ?0 W1 }, [+ `
#include <linux/leds.h>( ?  A' l. |0 G" ?% y5 i7 L- \
#include <linux/platform_device.h>9 v. H# N3 R- b5 f

) x& p% K. h  \7 z7 B( d0 h% O#include <asm/mach-types.h>
+ x- t: X+ c( @# b. [( W#include <asm/mach/arch.h>
- l' y) _0 K" c; h#include <mach/da8xx.h>; S% e1 @+ |8 q  T
#include <mach/mux.h>
" U0 ^/ ]- W4 i+ b6 K, z7 j2 y) O/ I' d; |9 N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  F- m0 t4 V9 c0 b' T+ b0 C" R% o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  j. i- p8 u( t. R) @5 p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 c! C2 |7 u% [) V9 O: h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  R/ g; l% M5 V+ D7 J; h

0 r# _) @) ]! @/* assign the tl som board LED-GPIOs*/$ R. p$ X3 p9 w' f
static const short da850_evm_tl_user_led_pins[] = {+ o# o% e: e/ Q  f  d$ a8 p6 `
        /* These pins are definition at <mach/mux.h> file *// k  F# [! F7 q7 M+ q1 j: Y4 [0 _9 [5 }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) V, B0 q% K: A* T( z2 x- J        -1( Z3 q$ T( b; O3 ^% i
};; N: x3 R: ]( n9 w- P. m3 E/ n4 W
/ P- A. {& X: p. H$ }
static struct gpio_led da850_evm_tl_leds[] = {
; Y  U' l# ?( c- M$ Q+ l2 n2 W        {  d. V" F8 z" r
                .active_low = 0,) u3 Y/ V$ Q4 K# f- j" i! Q) Y2 @
                .gpio = DA850_USER_LED0," z* _9 a# E# y: d
                .name = "user_led0",* v' ^: ]' d) B, N6 {
                .default_trigger = "default-on",
' K+ ]  V6 ~# B        },% K7 x: Q! v9 n2 Z" W+ ]) J
        {% m" P. h1 q" @( l2 ]5 B* a
                .active_low = 0,
4 c1 \& F' Y. d3 f2 a7 z: v                .gpio = DA850_USER_LED1,
/ g8 m! c: E) B! T' Q; x9 r                .name = "user_led1",
0 G$ A$ q0 M9 X& g0 p" P                .default_trigger = "default-on",
! n' u. `( H% u* S1 F9 M3 Y! q        }," [( I% A% a0 N" [% K" C
        {
) c% ~+ p6 b" v8 X/ k                .active_low = 0,* ?! S+ D, R. n. {* Y
                .gpio = DA850_USER_LED2,
' G( H: j) j* T2 \+ F7 d3 u7 b& `                .name = "user_led2",
3 K: X' c" r1 B$ q* O( O                .default_trigger = "default-on",/ R8 z( L$ [7 r9 `: y
        },
( x" I% ^) s, |: o1 j! F1 e# {% e        {
( K2 i6 O! K! O5 {6 p9 P  }2 D                .active_low = 0,' n! r: o% |; I
                .gpio = DA850_USER_LED3,  z4 I1 P7 J, m& s+ f& r! R
                .name = "user_led3",
5 ^. h, @0 g/ h                .default_trigger = "default-on",. l5 F3 G9 `3 N
        },
+ C% s& B1 G5 o8 }) u; p};
, w( z2 G, u! \; Z2 Q; L3 a% {
) g( W( u% @" ~( Qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: f) b( n7 V& R6 e( T
        .leds = da850_evm_tl_leds,
1 w0 i) w" H8 K* r1 Z: y8 ?' r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# Y6 ?8 P9 ~' \. o. Z6 O
};
, l3 f# |' t; t  D" p/ m1 I& A9 X" }9 e' A0 I( F
static void led_dev_release(struct device *dev)
' {7 \. i+ o! J+ Z( a* A{
0 p1 O: D9 X( F4 ~};4 D1 @1 j! s. O0 B, G4 h0 r# Y
$ _& t! ~# W( A/ x* q, [! t  d9 w
static struct platform_device da850_evm_tl_leds_device = {) Q- E" F7 c: o1 ]0 O+ s" v! R
        .name                = "leds-gpio",
8 N4 b# N: k9 q: |1 Y, B/ m        .id                = 1,- m6 I. W. b$ s3 X. j* k
        .dev = {
& k0 M- M* E3 L; U8 N! [                .platform_data = &da850_evm_tl_leds_pdata,
" D  N) E# J4 Z$ v, i; l! Q                .release = led_dev_release,, r# t2 M4 q0 X7 K+ p0 x. _1 ~
        }, [- ~6 |) A; \2 i+ X
};
6 U" P* w) g* }
& _% u! r6 G/ V3 k$ S, mstatic int __init led_platform_init(void)3 ~& K$ I) X6 s( a1 V
{
: c7 k7 N2 l. @% n  {7 H        int ret;* w- D3 D, U9 g* F
#if 0' \2 `3 \$ s3 A6 z! P3 \- G. a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 g' K% R0 Y, H* @: x8 R( w
        if (ret)
* P( V5 P1 Y) Q0 C* T( L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& d, E- t- h; [3 m6 J" K, w% \                                "%d\n", ret);8 {2 J) q6 Z7 X3 R9 V
#endif* e+ V, k. F1 }) {2 J0 C4 ?. p  [  K
        ret = platform_device_register(&da850_evm_tl_leds_device);$ [) J9 J% Y4 q7 t# Q, y, ?+ N
        if (ret)
& D8 A7 Q7 y6 m4 P/ D8 h                pr_warning("Could not register som GPIO expander LEDS");& r7 N, N1 |, B7 ^
        else8 D- D4 `0 q* p+ |* Y- c- l
                printk(KERN_INFO "LED register sucessful!\n");& Y: g* _- `( `5 l7 y0 x# B
7 L7 @5 U8 n* x9 f6 Q/ m& M4 P0 \5 T
        return ret;" `8 l3 Q( o0 F! ]( l- }
}# x: n  ?1 Y$ p# X, j6 X

$ U2 f6 l; n  gstatic void __exit led_platform_exit(void)
- g- j7 S/ p" |{, ?* E" y4 @3 g$ A% ?* n" O5 R
        platform_device_unregister(&da850_evm_tl_leds_device);& k; }6 |( t1 E% r+ g

+ @" q5 N& a) T) M' `1 E5 z  ~* x$ u8 W        printk(KERN_INFO "LED unregister!\n");
2 ~7 h1 p) u- w- ~, N3 Y: D* w) P}
% j7 Q: l& E( \! E; |* V' z& l1 F' [# ~8 F+ L" n" U$ z
module_init(led_platform_init);
6 E2 u0 k/ A0 Y9 F8 Dmodule_exit(led_platform_exit);2 D: u& ~+ t0 X$ K
2 T* r+ X* L  w0 I+ @5 O; K6 J+ ^
MODULE_DESCRIPTION("Led platform driver");* H5 W7 o# A" p" S$ W! u. D
MODULE_AUTHOR("Tronlong");& a4 F7 V# z/ K9 i; i% z
MODULE_LICENSE("GPL");
& M$ P  A* G' H( ~1 _- F2 J. W0 x# t5 T5 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 21:58 , Processed in 0.042867 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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