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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& u9 S( z0 D* K6 f. k# u) u% {4 d  G#include <linux/init.h>( f% w; t$ F8 P* h& f; s8 h
#include <linux/module.h>1 p1 x) }4 H2 H1 O% t
#include <linux/kernel.h>
' ?7 v' X$ l+ t( j#include <linux/types.h>
9 I' l8 i0 J: Q. T$ A- i5 @# A# o# e4 j#include <linux/gpio.h>
/ @+ c! J1 M  ~( L#include <linux/leds.h>
5 Q5 `. H, u$ w; G! k#include <linux/platform_device.h>
: v! Y+ V( L2 L' @4 O0 a4 |  A+ @; \* G
# u8 ]% v- }4 d( `3 }& W#include <asm/mach-types.h>5 Y$ d6 r& `: x( `, ~; s) k
#include <asm/mach/arch.h>% J1 z$ _7 s* b0 k) P
#include <mach/da8xx.h>
8 f; i/ i1 v# }% ^& i#include <mach/mux.h>
$ Q& k  ?  r0 W6 C! X8 a0 K1 N' G9 m* j2 S- Y# g3 O  F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- W! D) \6 j. }- m5 z' H! y9 R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 \# E* \) @2 q; i  `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- R: F6 g. j- w3 N  N) h+ n+ `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# R+ f7 w) R% [  l' @% I9 ?
/ {' G- H/ V( a* j$ l$ r3 i/* assign the tl som board LED-GPIOs*/
/ f8 y1 t) n6 r+ B9 Bstatic const short da850_evm_tl_user_led_pins[] = {7 i7 q. o% U" H! D( [
        /* These pins are definition at <mach/mux.h> file */& r# W+ e/ o5 \  E
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ T! x4 r8 D! F* r* B# g
        -1
5 A9 K( J& V% X4 s' d5 q};2 Q& T3 @6 Q- i0 B' ^
, @1 N! P' {" E( u% k
static struct gpio_led da850_evm_tl_leds[] = {4 |$ o* L: C& V. @5 T0 C4 `
        {3 H2 O6 W; ]9 X9 c  E
                .active_low = 0,3 S" N/ N& i5 a( L; y
                .gpio = DA850_USER_LED0,
9 i: s$ V6 K: G$ b1 e; J' U                .name = "user_led0",2 X% g% Y& A1 M! a. u. ^
                .default_trigger = "default-on",
$ x3 ^) }: Q0 ]+ R! R- B" U        },
/ m* J3 V8 G& L0 a: p$ y8 a        {
/ o& S; H2 w& g4 N: }                .active_low = 0,; b6 C! ~- X4 E1 P5 {' R
                .gpio = DA850_USER_LED1,) u- E4 ?- h6 |* P1 L) O' S7 a. X& D
                .name = "user_led1",% i' s% z, P/ C& x5 F, B
                .default_trigger = "default-on",. I( O9 Z- o$ U: Y, w  ^4 W# s
        },
. H6 M' z7 J& r. M2 o$ d% r  m; Q, F        {# b% \( B+ _; D7 W" R
                .active_low = 0,
5 b% G" }1 D5 ~; U                .gpio = DA850_USER_LED2,
& ~2 b/ _3 m# z4 S% E5 t2 \# [                .name = "user_led2",+ R: K$ o8 b1 P  p8 L6 q5 G/ ^
                .default_trigger = "default-on",
0 [5 W+ t) l! X: O5 h0 A" u9 b" ^( V        },% d7 _& x4 p. s" _6 }/ O& a: i
        {9 R3 ]" l2 b: a
                .active_low = 0,
' I# p# P' Y3 Q6 V% a( v2 m  _                .gpio = DA850_USER_LED3,/ j4 }: k' [0 X8 ^
                .name = "user_led3",
+ f  F( \1 O0 l5 p) {                .default_trigger = "default-on",
  H- z" s  L6 i        },
7 n# s; O$ Q: p$ q# W};
; p1 j( f5 L5 a- j6 g' L
6 y$ S' f( I5 c, O: \2 Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! G4 e0 j; l; p, U        .leds = da850_evm_tl_leds,! ^3 _4 m: D- @, c6 V) D/ M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 N) K3 g8 j9 I/ F+ f) V3 Y6 S1 c: ^
};
% ?; N1 m6 l. v8 g1 v) L. |" m4 q- ?" G, Z& ?8 T0 p4 |# j
static void led_dev_release(struct device *dev)! _; o8 ?9 l6 |
{
7 W8 F' H7 i4 x};
8 ~6 A# w4 r& R( a( T' R
& Y( T7 j5 v4 J( a: }3 X' nstatic struct platform_device da850_evm_tl_leds_device = {7 ~4 k7 W% v, D4 G& P# ?  d
        .name                = "leds-gpio",
) z4 t  {: X1 Q* |" N        .id                = 1,
' x: F7 }. F# z6 r3 P( a        .dev = {' ^9 z- U+ A+ i$ A
                .platform_data = &da850_evm_tl_leds_pdata,
! i  J3 M; q: S2 U                .release = led_dev_release,2 s0 ~- l+ G: N- g) O( l5 H
        }( m- ]3 Y+ e$ e7 Q3 P; l# V6 e
};
. n$ M2 b" j$ O( L8 x1 L0 G1 n8 k
# ^% {3 F. Y! t; ~9 [& b- istatic int __init led_platform_init(void)
$ R8 P0 L" ~6 y& v{& o" ]( X( Q: x: I" @
        int ret;: {% n* U3 d- ]! ]) t& t
#if 0) @# S% Q( w% F% [. U* @' m7 A2 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 Q$ k) U- ]8 M6 k: ^        if (ret)  o( d0 M" ^, H9 ^7 N6 P- w0 D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! R+ ]* h5 Y1 z. j! u6 M                                "%d\n", ret);
: W1 a9 N1 X8 ?; z5 g#endif
; F0 ?$ O0 r: J& C2 @  _1 s' y        ret = platform_device_register(&da850_evm_tl_leds_device);
6 V' `( V; V: H6 J: T        if (ret)/ L9 f/ u8 Y/ Z0 y( o1 {
                pr_warning("Could not register som GPIO expander LEDS");, ~+ }/ e5 I' g/ p. S
        else
. H' W% G* ^5 q7 b0 W- r7 ~                printk(KERN_INFO "LED register sucessful!\n");0 N: S" N: [' k, k8 j7 @
+ v. j/ {, i& A8 l  D$ @% x
        return ret;: r* s" j" e" I8 t9 ~
}
$ m7 ~' x; L* {4 |6 [  v) g9 h$ r* s. d5 g% ]
static void __exit led_platform_exit(void)
  m' J1 I* r% a- J& P- i1 t{
+ ?! z3 o/ |- C5 I# j& v        platform_device_unregister(&da850_evm_tl_leds_device);8 n( e( c  \5 x6 B, R' l9 U+ ^6 ~: `5 [

  z+ `* ^; e8 e! ~/ _) p6 U        printk(KERN_INFO "LED unregister!\n");' g8 S; F. @4 A- n
}9 k+ O- `' _; u1 X. w# \
5 _$ e! _% m' t
module_init(led_platform_init);
' h( p. ]2 ?; R# H- Omodule_exit(led_platform_exit);8 m( L9 I2 O+ `& F
; v; }* W" U% `3 |! c
MODULE_DESCRIPTION("Led platform driver");
! q5 H1 I- L5 NMODULE_AUTHOR("Tronlong");
2 g3 \4 K2 ~0 H8 `& ?! u  YMODULE_LICENSE("GPL");. _& k* N2 Q4 S6 s  y
4 F' {& \6 m% j' v; {  O- M! b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 02:41 , Processed in 0.038951 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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