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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! i: }2 v( O2 O/ b
#include <linux/init.h>  K3 m- U. i- n8 H
#include <linux/module.h>% b5 ~) [- D7 _" ^- j# j
#include <linux/kernel.h>
- f) l- j; c. x, `6 k#include <linux/types.h>' R4 C* v' B9 N5 t4 i# s: j
#include <linux/gpio.h>9 H) N- U9 N7 K2 ^
#include <linux/leds.h>( Y4 z0 `' }5 }
#include <linux/platform_device.h>
; m- g& A- W3 t- [! x
" B9 ~* q. \& [- M#include <asm/mach-types.h>
% M2 z; ]& B7 M  l% l' ]#include <asm/mach/arch.h>
' F" w; q( j6 e  i4 D1 @3 W#include <mach/da8xx.h>$ X0 U9 U4 v' ~' l
#include <mach/mux.h>
+ T: p7 s* O! D; V
5 w0 \) h# c! A, C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 i" [+ r0 Q2 r' Z9 Y8 K* P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 }0 f2 }5 s$ e% }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  I8 l% w6 p+ k4 @; w- t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 |6 q, A; |7 y) ~4 w0 i+ U3 r% X5 A. g9 G! `
/* assign the tl som board LED-GPIOs*/
. c( o# I, l* o6 S: Hstatic const short da850_evm_tl_user_led_pins[] = {
$ s7 f( F' F* c/ K# ?8 i        /* These pins are definition at <mach/mux.h> file */3 m4 P4 k* ]; \# Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, l& v- W$ L% Y3 m2 x  d1 G
        -1
; L! i, J, w; ]7 D};/ c3 m( X( v$ }: C+ t# v. H% R

" e5 D$ t% T  \( Estatic struct gpio_led da850_evm_tl_leds[] = {
) j, I4 P* f! `3 D$ Q5 S' f        {6 ]0 i2 ^% v' x" w" h
                .active_low = 0,) X0 r. x4 p9 L" B9 k  K, L1 M
                .gpio = DA850_USER_LED0,6 P3 K4 g5 t% }
                .name = "user_led0",
4 `9 ]' R, {, r7 `                .default_trigger = "default-on",
& v  |$ {2 q# I5 a, e7 g1 x5 o        },
- s% G- o- q! E$ F+ J        {
- L( O0 I. {$ n  f) r9 b; p- O. m7 N/ h                .active_low = 0,
$ |- j9 m* D( t& p8 H                .gpio = DA850_USER_LED1,! p3 ~% m/ g" `( o7 |! v
                .name = "user_led1",
- k* x- m- D0 k* M' z) [                .default_trigger = "default-on",
3 n. \9 P, S- `& |' F2 g' Z7 X+ S9 f        }," ^& Q& J' H+ Z7 b1 D' f
        {
' Y! [# m5 L3 m                .active_low = 0,
3 [( ?0 [$ [% K: d7 e                .gpio = DA850_USER_LED2,4 [" b. c5 e, o& m
                .name = "user_led2",' Y' ?7 n  Q5 ~& G
                .default_trigger = "default-on"," r& R* y) N8 a
        },. n. @3 Q/ p. P$ F) f2 |
        {7 V0 ~+ y  t- b& W
                .active_low = 0,# r: _# J- r* O% F+ ?
                .gpio = DA850_USER_LED3,1 d4 l- Y. X8 ~, L+ t
                .name = "user_led3",8 m" n& t7 H$ B7 K
                .default_trigger = "default-on",
9 [6 z% S4 h) d# g        },4 E7 K/ K: H, W& ?
};8 J% V/ w4 K' T9 h

* p( p5 _$ ~8 t) D& I- cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( P! i- W; g: o$ B" Q$ K
        .leds = da850_evm_tl_leds,8 J7 r, O/ N, |' A2 v0 m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 z1 V; o0 S# x3 u9 Q  A0 G
};1 J; f' T  z0 P; P5 e9 ?

3 @1 g- x7 b* b) P$ {static void led_dev_release(struct device *dev). w; K* {, }* ?0 p0 M! O+ ]6 G
{' S! P- L5 u/ l; w' _
};
+ R. v+ o5 p5 Q, w3 q: A1 l
3 m/ G; A5 @/ zstatic struct platform_device da850_evm_tl_leds_device = {2 y  s+ j1 T$ ~: f8 q, V
        .name                = "leds-gpio",2 _: r& a& U9 s8 d' |" T' D) F. z
        .id                = 1,' a6 r6 {5 P  P( v: g0 m0 z
        .dev = {& e) n+ `' ]7 J) Z2 D- a2 a4 d
                .platform_data = &da850_evm_tl_leds_pdata,
2 P& z3 \$ W  `& M' u                .release = led_dev_release,
$ R! a/ q  G& l/ b        }% k& A' t- T& ~3 q: Y4 c
};# A/ z2 R+ @9 {* r0 Y

( V9 f" |, [- R# o8 ?! x# Ystatic int __init led_platform_init(void)& @' E6 u2 B1 C8 V
{
0 p$ `: o9 a$ ~0 D( U* ^        int ret;
4 W1 @8 }; g( P. L: V" M3 B#if 0
$ o2 h& @) T3 M. w5 D( Y; a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ Q0 Z: X. a4 [8 x        if (ret)
* H$ L! {3 Q7 `3 x5 \/ |+ }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 v) J5 x3 t5 O5 D, p  S) w
                                "%d\n", ret);# ~! Z# z" P) Z# }7 |0 Z2 E
#endif& _% |2 r  Y, b! H& u# k1 h
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 V- x( E# R  V        if (ret)
  |$ Q7 O7 o0 P, T0 H1 D                pr_warning("Could not register som GPIO expander LEDS");
" L' T5 [# }5 _; u2 Q        else" e5 W* c9 L& |6 |3 Z; D; M
                printk(KERN_INFO "LED register sucessful!\n");9 y" |' u3 p7 H% l
4 f+ n' Y* k5 k) W: ]1 N2 O( D( o
        return ret;% e1 V6 U9 `3 v
}9 g% L$ r0 Q) [2 z

8 M' o6 F) Y# z9 Y& W* a2 ?static void __exit led_platform_exit(void)9 l8 m) {! s' ], o9 |' z* @
{
" @1 F! A% k  T" f$ D' Y        platform_device_unregister(&da850_evm_tl_leds_device);
% k! Y. w$ d+ B2 V1 _( w* t. @" C& i1 @. Z
        printk(KERN_INFO "LED unregister!\n");5 H+ X' J2 {$ l! s: P1 V
}
; g1 `4 O  u: K3 \5 ~8 q% S+ M1 _: Y2 r6 Z9 j' y
module_init(led_platform_init);6 X4 I+ _* Y% F* ~9 \% x& k6 G' d
module_exit(led_platform_exit);
9 q. Y6 \! M2 z% q$ e
5 U0 y' |% M& Q' h  ?  zMODULE_DESCRIPTION("Led platform driver");+ E% Z# }( ^- N3 V/ G' C3 Q
MODULE_AUTHOR("Tronlong");) T; q% `* O. ]8 R
MODULE_LICENSE("GPL");8 Q7 D$ x( h; y
' Q! E1 |+ Y: g2 p+ i* U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-20 18:30 , Processed in 0.038805 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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