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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 z9 f" H& _5 q
#include <linux/init.h>  f$ ]% V0 s" y& S. S; J
#include <linux/module.h>
+ G/ Y% ~3 u2 T5 ?4 h) {#include <linux/kernel.h>( n3 K, j) C  b6 ?+ h% d. m5 ?% C
#include <linux/types.h>$ N7 ]+ s; y% c; V
#include <linux/gpio.h>5 b' l% L7 c8 b$ [* h
#include <linux/leds.h>7 G/ X% D5 F9 Q( V& b  s; s
#include <linux/platform_device.h>8 L8 \( x( T# d4 S) A( X/ {
! m8 S7 x5 J" x+ ]7 n$ s8 K
#include <asm/mach-types.h>+ w" H& m* A7 g9 ]" z
#include <asm/mach/arch.h>
3 E9 n2 x; N. b- G#include <mach/da8xx.h>& M! M& q8 q9 A, G1 F# K9 w( @
#include <mach/mux.h>
; j; I  ^. V+ M7 x, ^1 w  L4 g) ?& I/ h) L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" Q. w& K, z' ]2 C  X/ A& {% [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# Z2 G$ l6 |6 h( G! f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; w4 x/ N0 p' k+ ~. G7 U#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' Z+ ]) p  d$ x: C( e- A
, T7 L- e9 u+ e5 i# z/* assign the tl som board LED-GPIOs*/: V. ^' Y; {, C; c  ~: K# Y
static const short da850_evm_tl_user_led_pins[] = {
+ h; Z: n4 n9 o' M        /* These pins are definition at <mach/mux.h> file *// }( x7 k, w9 P6 p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  x  N/ ^4 u0 c- H" b) ^& S
        -1
5 K9 m+ J$ n8 O5 x5 L};
' x& U# e& x' a* e4 {: t6 N3 B. p; e
static struct gpio_led da850_evm_tl_leds[] = {
+ d- E$ x) z9 P        {
4 v) q7 r2 _4 o1 H                .active_low = 0,' t' ~. b- \& a& o' v" V# x8 K. ^( X
                .gpio = DA850_USER_LED0,
" y- A9 c2 c' a. W$ R                .name = "user_led0",
" Z) ~) b( R5 L' H! @                .default_trigger = "default-on",
2 i: p% W! G: M3 s        },
2 Z. o# A! D1 c* b        {
; A& S( R- x8 W                .active_low = 0,
" X6 }/ D. C1 s4 |/ J& T" v                .gpio = DA850_USER_LED1,
7 s# o/ j7 _9 y% `9 H) a  I! f                .name = "user_led1",
* D  F. l% a6 y7 l$ i                .default_trigger = "default-on",3 s( B3 j% n3 h  X  F$ A- r
        }," @' N0 m) d2 a5 ?& k) Q+ _: k
        {5 `+ L' o( u/ e0 Q
                .active_low = 0,0 B; k" [3 q+ w
                .gpio = DA850_USER_LED2,3 ?- z6 l) L- C# @2 n; r. k: ~
                .name = "user_led2",
, b' r* c8 }; z' D                .default_trigger = "default-on",: `3 l5 v+ g: e+ y
        },! F( j/ D# F$ \
        {
+ b7 {! ]2 s: a& {4 x, R                .active_low = 0,0 J2 a! E, J; B7 e- |$ x. o
                .gpio = DA850_USER_LED3,( z) K$ p" X9 H0 {4 x7 z7 f, X: {
                .name = "user_led3",5 o8 u* H5 ?9 y! X' U/ s' m; u
                .default_trigger = "default-on",. [& Y3 |% a8 c4 i( G( {; ~: n% D
        },2 `" D( |# l8 `. @8 Z
};
+ z' k# c; e) d% B9 ]0 J2 N  y
3 m4 \3 t8 G; z4 d4 s+ `3 Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, ^; \/ V6 `8 \
        .leds = da850_evm_tl_leds,* c2 X+ |6 U7 q( H/ C& |$ ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( l. F8 W* Z6 m
};- E, v* o3 v+ D2 U% C

! ^0 R/ J: c/ o7 dstatic void led_dev_release(struct device *dev)
) s" y3 G% g$ |4 T$ H" ^1 n3 m( d{0 X1 q! i1 ^+ {, v% K7 A- k
};0 Y7 M# u$ b! j' V1 ?

& f; g! h0 J( w+ A6 j* G- Lstatic struct platform_device da850_evm_tl_leds_device = {
# ]4 h& m$ i4 S        .name                = "leds-gpio",
3 O  x0 H+ }+ N3 s. F6 c        .id                = 1,
2 z7 m1 X( y2 y        .dev = {
$ w4 w, [" Q1 H                .platform_data = &da850_evm_tl_leds_pdata,
: i5 m/ j% q0 |, r                .release = led_dev_release,9 }4 f0 N1 H8 o
        }
9 K& ]4 z& Q8 c. t* X1 k! _8 Q};
" o  ?0 t  Y$ c0 e
2 S8 Y: ~) D2 B# Ostatic int __init led_platform_init(void)
8 |" b- e9 E/ g9 V( @7 t- i9 X{' y) T1 k4 {& K, r# H$ x+ T$ w9 M
        int ret;
$ F+ y' v- Z1 }8 W8 u#if 0& h. g. J  V! @, ^7 r* `: M0 T1 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: ~( m+ {& E/ b0 f8 H
        if (ret)5 c4 x% ?6 R* S  \% u3 V1 c/ e( d  h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% K* S7 G) [& `" {3 Y% b" t                                "%d\n", ret);6 e5 H  I  C1 \$ m  S% j' a
#endif: F; Q) q7 |4 B' n# H6 L5 R4 B$ D5 ^
        ret = platform_device_register(&da850_evm_tl_leds_device);
, \5 J0 z, |2 B  [        if (ret), u+ s8 `! {  C/ B) S- m
                pr_warning("Could not register som GPIO expander LEDS");) z1 p/ }- e( L4 B0 U
        else' W2 [# d/ m3 o- Q6 R: k
                printk(KERN_INFO "LED register sucessful!\n");
7 L  `( c1 c3 ~% t
; \  e* M1 r0 x& T5 O        return ret;
5 {1 h+ Q  h$ m# E& V6 u}
$ p% G. g  g7 S2 l: X8 Z) r8 T9 u6 d" I( m
static void __exit led_platform_exit(void). x  i" q; r( M; r0 O" v
{, h' x  D: Q& q+ R( v. C
        platform_device_unregister(&da850_evm_tl_leds_device);  r( A* L, S; [7 B# j. x+ }8 G  c

) X3 w4 a! I$ r8 r        printk(KERN_INFO "LED unregister!\n");
% {8 c) `- j6 Y! M}
2 ^' m" \* A/ |8 T" Z( {
6 U5 L/ B" f* K$ N* p  R1 \; t& wmodule_init(led_platform_init);9 w& t9 [7 n- d8 k( p. R) I- c  }
module_exit(led_platform_exit);5 O! \, i3 m6 v. F( S4 m

1 \+ d. _2 A5 s2 l: V+ uMODULE_DESCRIPTION("Led platform driver");
5 g+ {  E  M- L+ A% u: ]& }: LMODULE_AUTHOR("Tronlong");
; k8 X5 f# o) iMODULE_LICENSE("GPL");0 e; T$ f3 ]2 A1 e; v1 k. n" e/ ]
0 r0 x+ q- d% o( j2 }, l% w& _6 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 02:36 , Processed in 0.039052 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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