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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) P% u0 P$ |4 r) z  P+ I#include <linux/init.h>5 O( r- @; H$ _4 l2 O
#include <linux/module.h>2 x6 X  N: V" P2 O3 G+ d. J; m
#include <linux/kernel.h>- u% w" g* C* K& Y1 E* Y0 x* f5 ?' m
#include <linux/types.h>9 ~3 _0 }7 v+ N! H: q5 D
#include <linux/gpio.h>
8 A4 R9 Z+ u7 l. |, h#include <linux/leds.h>6 t0 i  }# Z8 ]& X+ B
#include <linux/platform_device.h>  Y$ b1 R7 V1 T$ s% P; J( U
3 |1 w( ~9 r" }
#include <asm/mach-types.h>
- i$ b6 {& ?8 @" r8 H$ W#include <asm/mach/arch.h>! L' l/ n  T/ P3 z; J% P
#include <mach/da8xx.h>
5 o9 ?: B) n3 B* A  f' v3 W# B#include <mach/mux.h>3 S7 o& Y, ~  }2 q, \9 s

4 g9 j1 W7 x* p0 C' V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) ^5 m9 T* o+ R( u  a2 B5 B7 z1 U' f) |#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ }4 [6 c, S8 f1 ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( B: e8 n& w7 m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# H1 c# b) c( C. R

# [+ \2 ^  k- J$ B6 y/* assign the tl som board LED-GPIOs*/  V7 |# ~8 [4 n/ ]7 i" P& d! C8 g) C
static const short da850_evm_tl_user_led_pins[] = {
7 w6 m, H' J: v% B* L        /* These pins are definition at <mach/mux.h> file */
# W. c  C, d& ]1 E; n. _6 O4 N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; G! b3 t0 E8 Z
        -1/ R) i! f" t9 N0 i' j
};& h4 _7 e+ I: L1 N' H  y6 p$ f
2 c( S9 \, Y% u
static struct gpio_led da850_evm_tl_leds[] = {! P* L# a' w1 w
        {, Q  `: e) P! [( [
                .active_low = 0,
( h$ l9 ~' S+ B0 V1 k  w* u% y1 D                .gpio = DA850_USER_LED0,
) u; \& F8 c; Q8 e$ n% f$ q                .name = "user_led0",; Y! l; F" U3 U, k) L' @* y
                .default_trigger = "default-on",
$ L3 f: [: B7 i/ O7 U% c        },
* A9 a9 t2 s* ?9 \0 Q# I+ |        {
& k7 ~# z; k' \* l: n                .active_low = 0,- K$ Z, {% p  r$ A7 f) o
                .gpio = DA850_USER_LED1,
2 F$ n6 _8 R4 L3 ^: n# }" }                .name = "user_led1",) L. D' G! t9 j
                .default_trigger = "default-on",6 s/ K+ l9 n( m
        },- s" X# P/ U1 w
        {. L/ E2 x- y( f1 e2 `: Q
                .active_low = 0,
' e( @) t. T8 w5 I                .gpio = DA850_USER_LED2,
  m% x, p8 J2 h                .name = "user_led2",
) C8 P+ g- \: u/ o                .default_trigger = "default-on",
! |& W: O8 e/ V0 H" |        },- J, _2 }* G5 V& x- U5 [
        {
) i: {% W3 H, t  e5 W* N5 ?                .active_low = 0,0 K- V! S3 M2 w/ E  R
                .gpio = DA850_USER_LED3,! g) O3 M: p% y% d/ Q* M
                .name = "user_led3",
' |" q9 t) D6 [                .default_trigger = "default-on",1 m  D; b1 A1 P7 G' D' B
        },+ {. q% n$ P5 H
};
1 M: |' J; n/ T9 {3 @+ K4 Z2 T3 k& H- z0 F/ M& ~: W7 Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 W$ w/ R. D0 T- r. _        .leds = da850_evm_tl_leds,
& [* t4 a1 {' P# |! {: d* R        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 u+ C. G- [: u2 b0 X  z+ N
};4 N( ^* n/ G9 l3 A' K0 R( ]

1 {- [2 n  x5 F' V: W) U# Ystatic void led_dev_release(struct device *dev)) H) O2 b% V1 v  Q8 t9 L7 [
{: V8 ?6 W6 {  r1 U* W1 Y
};! x0 E: T+ Q! M8 \7 i3 S

# C% E- z+ T; L4 P3 E# |7 L3 Pstatic struct platform_device da850_evm_tl_leds_device = {
% S( W: s; M9 s/ O        .name                = "leds-gpio",* a0 N# u0 Y0 J9 R$ S
        .id                = 1,
$ U4 E0 i) T# y$ h" N" X7 H        .dev = {$ [) @0 z. `. e& _( b' w
                .platform_data = &da850_evm_tl_leds_pdata,
+ _4 F. {7 {! m' I. @% k                .release = led_dev_release,* y; U- t+ E5 z
        }
' ]6 Z* e; J7 I  I7 N};
2 |0 y( \3 c+ U9 S& b/ D- S2 G4 x( k' n7 O, K+ J. e
static int __init led_platform_init(void)
( Q4 j3 H, n! f$ ^7 H  ^# [{
+ p( b9 M5 m: F* s: }7 y! F+ {        int ret;
- K- A1 c$ \6 Z4 t& Z! s#if 0
* Y4 t: ^9 |, |& `1 M( b4 Z& |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 K( H5 y0 p# U- Z        if (ret)
% m' @/ w" Z0 D1 c9 ~- Q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 @" {% o( c" S; v, d& z; b7 i
                                "%d\n", ret);3 I. k( R$ H+ W
#endif
% b' X1 ^! X7 p6 T2 b: v7 ~        ret = platform_device_register(&da850_evm_tl_leds_device);$ \. i3 C+ Y5 \" ]8 i
        if (ret)
/ w' q2 }, [; b. E                pr_warning("Could not register som GPIO expander LEDS");
# T! k# L8 p% C# q/ C5 |        else  S! e, a( d) S& b5 R7 c
                printk(KERN_INFO "LED register sucessful!\n");; Z/ u+ ?: R6 A6 w9 V& ~
% N4 y6 t& j" G# p, I  m& K
        return ret;
6 e$ P* U( l7 `* X! n: s# L) J}3 E& f/ K5 z. n- o7 O

* s& H, X4 n. U- [2 m2 o* B4 Jstatic void __exit led_platform_exit(void)
4 c7 x( y6 H+ D# {( _& |{
% P5 g) I$ f: l% I% O: Y        platform_device_unregister(&da850_evm_tl_leds_device);" _7 \( ^2 |$ i& A$ W
0 H2 V9 F: i) ^! ?4 x7 k
        printk(KERN_INFO "LED unregister!\n");$ z7 n  ^& g& N1 ^; h
}
1 a  L+ G0 g; I; z/ N) T8 i* o( w# j1 I7 [4 n# ~& H
module_init(led_platform_init);" b' Q; H' i8 b' ]5 Y
module_exit(led_platform_exit);: f" C* \) F7 D+ j7 n. R

! w& K+ `9 }  J- xMODULE_DESCRIPTION("Led platform driver");; w+ h8 o& @7 w$ y" M) z
MODULE_AUTHOR("Tronlong");
5 I/ u5 K5 r& U6 y) gMODULE_LICENSE("GPL");0 F6 s' W+ ?4 b# t  `, b

2 W) T3 E  _* x5 v! A- W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-21 21:02 , Processed in 0.045595 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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