程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' d3 e( M- C* \2 X: o
#include <linux/init.h>) @. q: v0 E! s% W- L8 h6 V
#include <linux/module.h>$ L  C$ I# U* u8 A* e& M; f' }
#include <linux/kernel.h>
( V2 N3 j  Q0 l: m#include <linux/types.h>
+ L( W: J( v* f6 L9 _#include <linux/gpio.h>
8 y/ B6 A/ c# P4 [; z2 D, a#include <linux/leds.h>
1 ~9 [% b/ A' }( l: h0 _/ \#include <linux/platform_device.h>6 z3 U* ~) J7 Y7 L: I$ v; {7 g

5 Q6 A; R8 \% Q! \#include <asm/mach-types.h>
3 I' A& y2 F# }2 i/ H5 _: k3 i% B/ J#include <asm/mach/arch.h>
- D# |, H/ k4 W3 r#include <mach/da8xx.h>
* o* r5 a" k! ?" p" P- z7 n  n#include <mach/mux.h>
/ h. ~- T* m  ^8 b- I
! H! C/ C- V& H6 ~7 x* n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" ^& _3 S* V2 J5 f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! b1 T, u. F! G: h* E4 O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): ]) a& _6 ]" T( S" u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 Q) H" i% k, t3 j
1 o  b8 H! g& o+ y  Q/* assign the tl som board LED-GPIOs*/
3 m0 R5 R* J0 [$ z- P$ nstatic const short da850_evm_tl_user_led_pins[] = {7 X) G$ ~! j& ^9 j. ]/ i$ E
        /* These pins are definition at <mach/mux.h> file */( f4 P( g0 o8 P* w! {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 I2 q+ Y- O+ C+ E; M
        -1( K8 m7 |( A5 a. m+ W
};5 d7 I5 Z# e7 `1 s4 w
4 @9 {& _: A# k& A5 @6 p; ~
static struct gpio_led da850_evm_tl_leds[] = {+ Q* h# g. H0 A% i2 B( I3 ^
        {0 r4 A/ K1 `7 ^
                .active_low = 0,
4 `* ~3 u( R& q5 D- v; W# c                .gpio = DA850_USER_LED0,
' O+ g( H+ V% y/ M. N4 S' t" I                .name = "user_led0",, j6 A# t9 L1 i/ M" ^' [
                .default_trigger = "default-on",  ~* L4 z+ r  n+ G# p0 O# X
        },4 ~( d5 N. R. I5 f/ B* h2 h
        {
1 c5 T- m' {7 K" `3 `  ]                .active_low = 0,2 Z7 h# c* c0 v+ j
                .gpio = DA850_USER_LED1,
7 Q7 L, i5 ~( I- S                .name = "user_led1",) y# k# Y! n" D7 ?
                .default_trigger = "default-on",5 @# X2 \5 D- ]% h, P4 R# z
        },
/ j2 }5 `* v+ m        {6 c8 ]5 P" ]8 G1 G+ y
                .active_low = 0,
$ s8 e8 [8 o* D" u  z! u                .gpio = DA850_USER_LED2,
) j. T# c# Q* f5 }                .name = "user_led2",
" j7 ~+ E, n, s2 D( S* ]                .default_trigger = "default-on",
# x; ]6 N4 T0 |# b% b2 Q5 u0 l        },* F2 b* A! k2 n  E! w* }
        {$ ?  \) O  h! v- N' i1 W
                .active_low = 0,
; Z& d/ G* u$ Y: C5 ]/ \                .gpio = DA850_USER_LED3,/ @9 M6 M% f8 ?6 S) \5 y
                .name = "user_led3",
6 |# M  q$ Z" ~8 l, e                .default_trigger = "default-on",
) M( v) }, [0 a* G  p: h        },3 N6 r3 r: K8 r8 C6 K0 _- A# W4 k
};. Q3 n% `: [% s: p* s1 }
1 Z5 U$ K: P" w9 \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! Z/ C: K2 W6 ~$ G; V- C! W
        .leds = da850_evm_tl_leds,% d' L  t4 C. R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 }& `& j& s! _/ t" t% x
};6 z+ {3 r  k: C. m

; Z" Z/ w  _; V, S3 [2 xstatic void led_dev_release(struct device *dev)# g: z$ q! K" o; S
{* ]$ D7 E+ a- _
};
8 C: i1 S& c  w/ ^/ S
# a0 t" \! O( F. _, Y  vstatic struct platform_device da850_evm_tl_leds_device = {! [: H% A$ {$ E# y  j1 v+ u! K) h# `
        .name                = "leds-gpio",+ _# o: G* p5 S0 P
        .id                = 1,/ z1 {7 g' d& Y0 y, Q
        .dev = {
" Y8 b: L7 j* G' Z9 ^5 a; i                .platform_data = &da850_evm_tl_leds_pdata,
" R3 A0 y) i7 {- t                .release = led_dev_release,
" o3 l, ~  P% j0 M$ H/ z        }
% u+ n* U0 C5 \! ?};
  n2 {& e2 n9 t/ H  j* N. O9 Y6 n- I9 V: K) {
static int __init led_platform_init(void)
% O3 i# h5 v) {* @{( ], g+ ?- s8 x4 n* A
        int ret;! o0 x0 K" t. T( |
#if 0
% Z. G7 t5 {/ v) _: i+ l$ p( r: r, k# X        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ b7 W* r9 b/ y$ p  B1 H* ?
        if (ret)
* W9 W3 b  E  {- q, a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ T- _& h+ _# B1 o( s                                "%d\n", ret);0 l% `+ X4 N' Z: F) z
#endif
; k( ~& `& g2 z4 ]5 p        ret = platform_device_register(&da850_evm_tl_leds_device);
, v( ]0 b: z3 j        if (ret)0 F- `8 ?$ d" A& U" y
                pr_warning("Could not register som GPIO expander LEDS");$ Q7 z% d; Z! e. ?' T! M# T3 {
        else8 _$ ^; N- c" j( u& Q% C7 D
                printk(KERN_INFO "LED register sucessful!\n");
: B& O( T# G1 s+ R8 A$ f' l( I
) |  ?9 O; J8 m7 l' a& [6 Y        return ret;
" y  b% x4 v. F0 t$ u}& @/ s! ~# a7 c$ v3 [! j

3 S; J% k% M4 a) V/ L$ e1 Sstatic void __exit led_platform_exit(void)+ x) o0 i) g' g2 M; P5 |. N
{
( J2 z0 _0 E  A        platform_device_unregister(&da850_evm_tl_leds_device);: G9 C5 D9 B' I% L0 W/ L- \  b! g$ H

0 q+ d: y5 M1 f/ D  k5 g        printk(KERN_INFO "LED unregister!\n");0 N$ Y7 C: p* g) E! h& D/ O# I4 H3 p
}
: o. n' O* L8 g& `; s4 m+ X( e/ }
# `, s' T  u& ?module_init(led_platform_init);
2 v% S! Y' T$ }module_exit(led_platform_exit);
) s# s+ ^* b( h) G. X6 F  F! i" C' _% Y; z% o
MODULE_DESCRIPTION("Led platform driver");
: B" x# a6 Z3 i. j' a5 W1 PMODULE_AUTHOR("Tronlong");
( c' G9 m+ x9 s7 r" ^1 g6 ZMODULE_LICENSE("GPL");
$ U  |+ {/ C7 h' \% s5 X: v: F$ f5 \2 T' [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 09:32 , Processed in 0.039712 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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