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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' A8 l' I# O! O& R" k/ }  r0 U
#include <linux/init.h>
" F% g* B; Q2 Y& r4 T2 E#include <linux/module.h>; \+ |) ^0 V( D; t; O  j
#include <linux/kernel.h>
# d, I# R- z  k$ b#include <linux/types.h>2 S0 n( ?8 k, z! e2 `
#include <linux/gpio.h>0 v( j6 J* F4 L
#include <linux/leds.h>! N: d2 S7 y9 x2 R# A  _
#include <linux/platform_device.h>
" y: [  Q/ b5 c3 d5 i; n
4 f7 d+ P( q2 y, C9 K* h6 p#include <asm/mach-types.h>$ G7 l* U. v/ u1 z0 P* n! j
#include <asm/mach/arch.h>( h, `' r# h" u8 ?$ h3 j" ~
#include <mach/da8xx.h>
; _& e0 G  z; f- O3 ?#include <mach/mux.h>+ W- ^! H. x. j) d! R! m

2 K2 J6 @! q, c5 A9 ?& d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# t7 B( ^  H" S3 u1 m! U) E" O3 o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, w% c, K: n0 N; q$ |( h5 E, @: N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 o" v0 J! k) Q8 q- |4 k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), x3 s5 a$ b1 K  n1 n2 O' z- a. }
4 d6 ]* t( [+ H8 W: o3 o( g% E/ b
/* assign the tl som board LED-GPIOs*// ^4 H) [6 Z' j  O, u
static const short da850_evm_tl_user_led_pins[] = {
  a& f! v5 y! L3 a( o8 K        /* These pins are definition at <mach/mux.h> file */: A- i9 v5 ]4 i9 m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! b6 V7 Y' Y7 b" k1 H3 ^
        -1. [% x  h% k* M; |4 b7 y$ i; H
};
0 v' j2 c  @- V) [. A+ L
; Q' w) X. F2 l7 Z4 u0 fstatic struct gpio_led da850_evm_tl_leds[] = {! D, I5 |" J0 {  O  X* d: b
        {. S8 r7 C: {, n' v7 e' U
                .active_low = 0," V  b# {  L7 }* z- q  z  y/ R/ X3 ]
                .gpio = DA850_USER_LED0,
# w9 {4 |: v9 Z  v9 e: U( a5 J                .name = "user_led0",- U) A1 l; r- H4 W5 @5 K
                .default_trigger = "default-on",! R. U* y, V, y' s+ R) }, b5 T$ f
        },
* o% n( h4 Q  {5 w        {4 I' C+ V0 d1 H! L2 M
                .active_low = 0,
4 D4 i* O% y. g' E3 t+ f# M  b                .gpio = DA850_USER_LED1,
: n  s+ ?! ]8 U1 b                .name = "user_led1",
; _$ P. X4 E: ^0 L                .default_trigger = "default-on",- W' [) k7 `4 P( n1 n% e5 Q
        },
  L! p! _- z# J* ]: ?        {
2 s  w  b/ A) t& @9 ]+ N                .active_low = 0,2 h5 Q3 h6 ]; _1 P
                .gpio = DA850_USER_LED2,2 M2 \4 W/ `9 Z: L
                .name = "user_led2",  h  u+ s' o+ g* j3 Q
                .default_trigger = "default-on",
) T: r, c$ E/ b' l        },
, K4 s: R$ }$ p( I# Q& D        {1 ^$ e/ R5 N& M
                .active_low = 0,# ]: _+ g' q$ _1 h5 T" G5 K
                .gpio = DA850_USER_LED3,8 G4 ^0 O" c% m# m
                .name = "user_led3",
, u* G* X( p6 A8 C/ s, A                .default_trigger = "default-on",$ e% ~) M) E/ g; K* Y
        },* s7 E( h+ b9 p& W3 ]  k6 F+ _
};2 f/ U$ s0 i9 f' e4 b$ v4 v

" B" Y# c: _2 Q; `# A1 cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 A- d: p$ n+ k1 F& @
        .leds = da850_evm_tl_leds,
- M; ?: p) R' N& ~3 c. A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& G2 P) k6 S, M' B
};
/ r9 q" Y- B. I+ ]0 I1 u- ~7 N; B% i6 g2 m& X9 @
static void led_dev_release(struct device *dev)
) j3 c( J6 K! @3 b$ S{
/ a; D8 m; Z9 K: B7 ]2 j};  p( q& s; n( `# B" [* ~

# o1 H: F' D. J, C3 |5 Astatic struct platform_device da850_evm_tl_leds_device = {$ S/ J3 d$ [" p" O) @0 K) C: z( E
        .name                = "leds-gpio",
# S: M( p, A( e; @1 m! d        .id                = 1,
; i2 u$ a* l) u7 V+ g( R9 w; F        .dev = {
) ?- d7 N+ L% J0 G4 U8 \                .platform_data = &da850_evm_tl_leds_pdata,6 f- E$ \% f2 Y
                .release = led_dev_release,4 F5 L8 Y8 {0 w/ k5 T9 `& S$ x
        }7 V' k( P3 @. a9 b1 [, v
};
+ E3 O! D. d$ D9 }0 U$ H  d
1 K4 J1 E/ d: astatic int __init led_platform_init(void)
. E' F: n1 ~1 X2 P9 Q{
* a. |  G. Q) p0 I+ A        int ret;# [7 b% r0 y1 a5 e" l1 @2 `" ?, k( C  H
#if 05 C1 ^: g6 d$ \. s' }. M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 N7 c! z- L' G" Q' ^' ?" ?2 [0 Q
        if (ret)5 K9 a) ]& i2 y, \4 I2 @: T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# L# I/ X& j# Y( E9 E: b
                                "%d\n", ret);# V- m9 ]( E" W  A
#endif
+ N7 b- r# t' G        ret = platform_device_register(&da850_evm_tl_leds_device);
, K+ D8 _; A3 a, C; T- G; o5 c        if (ret)6 U  Z/ C! Q# O% u9 s9 r8 q, E
                pr_warning("Could not register som GPIO expander LEDS");( }  @" d6 I5 M: v' L3 }( ?
        else  p2 t( K, R1 o/ }
                printk(KERN_INFO "LED register sucessful!\n");+ R2 `+ z9 k# H+ K; q' ?
! ?8 w% Y! z- d
        return ret;
4 I) D% M# k0 L}
! p8 ]4 L( \2 r8 y4 [; e: ]& Z
" l1 b- ?, [4 Q" v& a. A5 c( Mstatic void __exit led_platform_exit(void)9 ^: u! m0 e; v% U3 b) n$ p4 N1 N
{
4 }' C+ z5 s: @% j        platform_device_unregister(&da850_evm_tl_leds_device);6 T3 R; U) v# ~* B$ z& o

4 a. X4 D) o* ~* L1 `  Q' T% @        printk(KERN_INFO "LED unregister!\n");* D7 _6 c5 u& {4 Y3 _) @2 u" v
}
  {6 k% Q- a3 S! y' B; l) E1 ?  @, L6 W) a" G
module_init(led_platform_init);( d6 p: A- M# F. Q7 ]
module_exit(led_platform_exit);# |. }4 B' u0 q- ^$ h1 s
, A1 W+ Z. i( O. v; \( `  Q: {
MODULE_DESCRIPTION("Led platform driver");
2 Z9 _9 ?: U3 _MODULE_AUTHOR("Tronlong");2 O' U* N8 P* u+ X$ P
MODULE_LICENSE("GPL");7 X* x; i0 W6 Z2 }" ^
# t5 Z! T: C9 N* d! K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 10:37 , Processed in 0.039211 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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