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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, O+ \& d% g9 s0 ]+ u" Q#include <linux/init.h>
$ D  m, W' h% i% A# K$ Y$ m#include <linux/module.h>
) X: p- K6 G) s#include <linux/kernel.h>5 K& Z% i6 Q2 w, {; B) l
#include <linux/types.h>7 ^% X# k1 j0 J$ `. r9 C
#include <linux/gpio.h>: L, K% S# s( I# Y
#include <linux/leds.h>) W( Q9 b) F- u9 P1 q5 [! X" G# w
#include <linux/platform_device.h>( C. R, O' ^( ^  L* h/ V* U
& U( Q* g1 H% J, B9 X8 `
#include <asm/mach-types.h>2 Y  R* p9 m1 z9 K6 A# B
#include <asm/mach/arch.h>( i, V- X6 U! n. b  g
#include <mach/da8xx.h>
* }( S5 {+ @. n$ s5 }- g# Q#include <mach/mux.h>4 _1 M8 g% ^2 q9 }3 J8 {" F% `
1 c- k1 y, A0 T4 X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! \$ \1 c9 l, K4 }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ u5 Z+ f: y' G0 Q4 v- ~) W9 C- {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& q2 w( }$ n* V- A& S! `& j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" g3 \: h& n7 Q4 z( R. i' n" l! q, u
/* assign the tl som board LED-GPIOs*/
; S' d: Y% T* ]$ c5 C3 ]% J" estatic const short da850_evm_tl_user_led_pins[] = {
& G7 K! a" P/ d" g        /* These pins are definition at <mach/mux.h> file */
0 u, P) ]7 n: C- }% l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 f$ B  E; h4 y( |3 ?        -1
, d+ ^- ^7 |( }: S8 M+ j  v};* D2 R0 s- f3 W

* F) ~/ C: |7 fstatic struct gpio_led da850_evm_tl_leds[] = {. W+ Z- }, a5 u  V! d! ^9 A
        {$ i7 ^# J9 l9 v. u/ u0 ?
                .active_low = 0,' U0 s# e! }' J
                .gpio = DA850_USER_LED0,1 H  F* u6 ]& A* D: }
                .name = "user_led0",
- v8 v' D# x& q9 N  }) a7 P! f                .default_trigger = "default-on",
* }0 Q6 p! F2 c: k0 `2 q- y        },
7 E( s4 G4 x6 S        {/ G, e4 K$ z4 p! s
                .active_low = 0,2 \0 s: ~4 v: W9 z7 F
                .gpio = DA850_USER_LED1,
' M/ t0 K/ {: G8 I& [! A                .name = "user_led1",& {- {* x" _9 j- \% L/ @% y3 \
                .default_trigger = "default-on"," ], z0 T5 f$ a# X. j$ e
        },
: c  u# ^  L- Y7 d        {- }4 L& q5 T; ]2 H6 `
                .active_low = 0,
4 M/ ]5 I( K# L" a" N                .gpio = DA850_USER_LED2,
% ~* c1 F3 `9 c6 a2 @% \5 z1 a% f                .name = "user_led2",
/ o  ~6 P9 ?, ]4 Q6 g                .default_trigger = "default-on",
* V9 j& ]4 p" @( x  l# P9 L* V        },4 }, \8 X* m: \% X
        {
/ ^& y) M* D# E" l9 h: X                .active_low = 0,/ R9 Q. K2 l; ~; K
                .gpio = DA850_USER_LED3,
  k' P' a. B/ {. |4 e, P2 ~                .name = "user_led3",- ?' t: T9 q; s" y/ w
                .default_trigger = "default-on",
3 a. z, W0 P3 k# X/ p, f        },
9 Y7 h+ |4 g# K  y. O$ A};
! E0 G" @  W/ }+ G( F
5 U6 {0 M: l) E# |- Q9 Y! s* P- Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. q. n" [1 f5 x( S) ?4 u
        .leds = da850_evm_tl_leds,5 x6 `4 \0 I; d1 s, D; V
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 m. w" z8 r7 Z
};
0 }% a, ?  f% q' L' I3 m+ y- ~& Y6 B- q! w, G7 v
static void led_dev_release(struct device *dev)% z9 M* ^. W  b* S. z
{2 J: D* O$ s3 p5 ~1 ~
};1 I% e! j) [& F/ R7 K/ i7 R; R
6 G* w# K5 m, D, @
static struct platform_device da850_evm_tl_leds_device = {
3 ~, ^" C. `/ n# O9 s4 _- }        .name                = "leds-gpio",% |+ x1 w% y( [9 j3 o- J
        .id                = 1,
' D7 w4 t0 [2 P7 p" p: I& E& Q* Z4 [- N        .dev = {0 e( [& p2 E& h; p& \$ R
                .platform_data = &da850_evm_tl_leds_pdata,
' P1 U1 a. ?* _6 M; c9 Y9 X                .release = led_dev_release,9 U! r: b5 C; G5 g3 q* c" L
        }5 G6 X% d. |% v  Z6 h+ l$ \4 ]
};2 k  e# M3 w6 f# |% }

) I4 y$ r/ E1 Q- k6 g+ astatic int __init led_platform_init(void)
& J  R* j+ `/ _+ M3 ?{
% {0 n7 e5 s5 W( f2 U% r        int ret;
* [: F' M6 v) a#if 0( n# L" s: o& W, j# q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ h. Z6 J1 A# E8 S$ ^9 Z! ^' v, K        if (ret): o- a7 D$ t& L1 h, B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". a6 x' n2 ?, _4 E
                                "%d\n", ret);, r" N0 f+ O" x5 _( `
#endif3 ]/ x  Q% c4 B; t3 J* d  L+ t
        ret = platform_device_register(&da850_evm_tl_leds_device);0 A9 ]1 j8 k& w
        if (ret)
9 w% y* }& M- K& o! I                pr_warning("Could not register som GPIO expander LEDS");
4 |2 h% T' e. C7 T4 S, R9 ?& ^        else
" U, |6 h* [8 x. p( ^! Q                printk(KERN_INFO "LED register sucessful!\n");
" P; {. u. X4 E  l+ m1 C) f' x" I# I. a' w! d- r. \) H: W
        return ret;' }' c1 ~9 ~/ X5 g' h
}' c: n' q, y. k# y' |  t/ l

! w' T& H$ v  G( z8 S8 ]static void __exit led_platform_exit(void)
" R+ Y" o% x# {9 c, Y{2 h5 U- e2 W* L- m8 v" w2 X
        platform_device_unregister(&da850_evm_tl_leds_device);
0 T: B* d/ @0 n
6 ]6 |+ w  z# ~! Z# C        printk(KERN_INFO "LED unregister!\n");" K" `, b5 b  d" p! k1 p- s! `
}
2 y9 [, t& `: y# u- O; k1 n3 E
% x( r: V; A7 I8 H2 ^1 V! J/ Xmodule_init(led_platform_init);
/ y0 S0 @5 c/ J5 [6 emodule_exit(led_platform_exit);
# Q+ R* \4 H3 Z( K# ]: t+ v8 K# ^
" w& L1 s) M) n0 m! K& I$ CMODULE_DESCRIPTION("Led platform driver");
* \9 k6 a2 h& }. e0 JMODULE_AUTHOR("Tronlong");! ]4 j, G& k7 L
MODULE_LICENSE("GPL");
8 v; d  {: a0 [# @* e( h3 R" ^7 M' [$ `. Z2 ?  c5 i0 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 10:38 , Processed in 0.045963 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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