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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) k+ [; T$ ?2 z2 p; V, E6 q+ ^#include <linux/init.h>. P, x( H2 M' g. ]$ a$ D
#include <linux/module.h># H, b4 l( g' [. }* \6 J+ N
#include <linux/kernel.h>( G$ W. W" M# K6 Q0 E8 m
#include <linux/types.h>
* c1 }- J. K6 d4 x# U#include <linux/gpio.h>
* ^; a7 O6 U# Q( }$ O#include <linux/leds.h>
0 ?# s* [8 t. b& }+ w9 q/ {#include <linux/platform_device.h>
: `, D. d3 W" s. K' {
1 F$ W, U. [0 W#include <asm/mach-types.h>( \& K/ u! {/ w9 C# Q! [2 U& v
#include <asm/mach/arch.h>
0 ~7 Z) A+ ]2 \: k. H1 m#include <mach/da8xx.h>& H& ]2 \: Q1 Y
#include <mach/mux.h>* Y: X# o. J7 |5 p* s/ h
. N% S% q7 l3 L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 `( W& O1 T0 Z( N! S
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, K8 f( w8 v2 I! A7 v+ {0 D4 V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 n2 ]6 e" ?8 y0 }0 p  T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 v( z5 w8 G* ~1 O

3 N/ z* I3 z' p. R/* assign the tl som board LED-GPIOs*/
+ h! W: l, B9 R. G; e3 s3 [4 V& Sstatic const short da850_evm_tl_user_led_pins[] = {! R% @+ q* B, k7 y( A
        /* These pins are definition at <mach/mux.h> file */. m) o8 s% l; p$ Z' ?7 e, ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% \/ d) U2 ?/ H* `4 ?$ ^- L9 }        -1, g* O4 r$ `7 \0 R' ~
};
/ M0 s' F% I; h- A1 U( @" w
- ^+ B5 J. O( M! n8 E3 ~: t2 xstatic struct gpio_led da850_evm_tl_leds[] = {
/ k  y3 }% ?3 x9 Z; g6 u2 F  P        {; n( z4 H0 `9 |! ~+ s
                .active_low = 0,
4 }" t% H+ R  p) |% Z2 l                .gpio = DA850_USER_LED0,, j5 U% w; A/ ?4 N6 r
                .name = "user_led0",( h, |6 x" O% K/ s, i
                .default_trigger = "default-on",% u# w( Q: f/ A5 m# ?! s
        },
- ?/ J# t  h' d! D* U. J  B        {; _/ o: G' }" c! g# g
                .active_low = 0,
& P! Q( J- \8 s0 o( C                .gpio = DA850_USER_LED1,( S2 y' W' e# M/ q7 u
                .name = "user_led1",
, H0 o3 B: g, S                .default_trigger = "default-on",6 {  ?" A$ o. O7 |/ n6 u
        },
. R: v8 R7 k8 H        {
4 Y! b+ u, q1 O+ H                .active_low = 0,
2 s' X" @3 Y2 P0 S                .gpio = DA850_USER_LED2,0 \6 c4 z6 d1 |% t# {+ z7 C$ C
                .name = "user_led2",- c" G" j$ P  L
                .default_trigger = "default-on",
0 w& Y$ c+ j$ C3 {5 C3 u5 ~        },
/ D5 ?- Y/ ]$ g/ G( n        {' H/ y9 z- y: ?. j+ Z( V$ F
                .active_low = 0,3 |* z( h1 M: o7 P! t
                .gpio = DA850_USER_LED3,
3 ^. \3 L; E9 r% r9 @                .name = "user_led3",
& m2 L* g; v+ g. h8 D6 P                .default_trigger = "default-on"," G( ^  {( q8 k
        },
2 o, o# J, G. X, h};
5 }8 f2 C$ `8 ?3 W! W3 X1 ~
2 @0 d' ?9 K# K& W% f7 Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 t3 a5 X1 ^. ^% B7 i2 w! D
        .leds = da850_evm_tl_leds,# V1 h5 v! j# F4 U3 ?; H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 b. y! n- ]) z+ P! n4 ^. _( }8 R3 |};+ e; {- ]7 m. u

+ `: k2 h5 p% p9 |( l: Nstatic void led_dev_release(struct device *dev)
+ B; I; p: Q) D0 e{
9 I2 t% L$ c2 C7 e9 n. r};. Z% K; ~8 C1 ~& m3 F7 W- P  N, C

$ E- w6 ]& d! L1 ]# d& c7 astatic struct platform_device da850_evm_tl_leds_device = {+ A, N' {% ]3 h
        .name                = "leds-gpio",
4 X! u; k1 d5 F  [        .id                = 1,' s% ^  |, c, I0 H! j
        .dev = {- Z/ O7 m5 y; k3 j
                .platform_data = &da850_evm_tl_leds_pdata,
1 i  n3 i8 S, J0 e: A4 \, g1 m                .release = led_dev_release,
2 c  J) F# k3 Z. U  v2 {# H        }
+ k! w1 y1 r0 z' B/ V: h/ h};
% {0 N$ k% _/ r7 v* i+ r+ q
; \4 y  B1 o. N" y1 c7 |static int __init led_platform_init(void)
  m2 S9 U7 b) H{
9 n+ g4 {" x# ~" D. L9 t* ~, D        int ret;- n; N( o) D' P( S3 ~8 t
#if 04 V/ Y/ a9 `0 A, j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; B0 a9 U3 F/ \
        if (ret)8 ?, i  [/ v" K$ g) o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 h2 B$ T4 D4 D7 g, c) W; S
                                "%d\n", ret);' [. y  B5 R5 m, }5 a
#endif# D# [- p, {4 r) j. [
        ret = platform_device_register(&da850_evm_tl_leds_device);
& y; E2 {( k0 Y7 y        if (ret)
+ v) Y4 v6 n5 E/ S& O9 Y, t                pr_warning("Could not register som GPIO expander LEDS");
/ X/ ~; b+ u) `7 ?7 B        else, U# ?  J+ u% Z5 o9 e
                printk(KERN_INFO "LED register sucessful!\n");# s) X6 Q8 q9 l* q" A% \

' \; S# b  [% c9 w; P- R! b; ]        return ret;
+ P; w; @' `! o+ R: F$ |}" n" D% F  d, D& z9 \# r
2 W( ?% i5 M  A; V$ v6 {" J
static void __exit led_platform_exit(void)
, T8 S- S! q0 D. f4 {, t+ z: I{
+ Z& s& T) t6 u1 c, d( E/ I$ `        platform_device_unregister(&da850_evm_tl_leds_device);8 N% F& x# Z, T- c
0 k( @" X( n6 o. I# H
        printk(KERN_INFO "LED unregister!\n");; p  }1 R+ U* j$ r3 I4 Z. \+ @' F
}
: F/ d6 n$ }- R6 ^0 o  q7 W9 _( o
module_init(led_platform_init);
1 Q) [: q/ U9 z5 C& `+ n8 h  V3 vmodule_exit(led_platform_exit);  W! d% t; l* y) s5 G9 ~4 ^
( s3 N1 M& E6 H" z0 N
MODULE_DESCRIPTION("Led platform driver");
( Q& Z: g. C4 [, r* L" F7 ?$ f; v$ DMODULE_AUTHOR("Tronlong");6 L& X/ L2 W* `$ e2 t$ F
MODULE_LICENSE("GPL");* l. F& g4 e+ q5 \/ P

' t; p1 s* P9 X* ?" ^  o( ^& E) j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-9 14:06 , Processed in 0.042110 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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