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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 t6 G! s" l; g& d% o#include <linux/init.h>/ k' E+ l; f0 T' a" ~) l
#include <linux/module.h>% R; @) ]" @9 b
#include <linux/kernel.h>
' z& d2 ~$ y2 p& j4 \1 Z#include <linux/types.h>- S" P/ r1 F7 Y0 d5 f& X$ S, {
#include <linux/gpio.h>3 {. j7 ?1 x6 M0 K5 n. Y. s
#include <linux/leds.h>, u. G& S+ w6 p$ u6 c3 h
#include <linux/platform_device.h>
- r: J4 k4 ~9 W& y% j. G% i. f7 b; H$ F7 p$ \
#include <asm/mach-types.h>
0 G+ ?. h. p* ~2 Q6 Q+ |#include <asm/mach/arch.h>. L. T% X- T, N
#include <mach/da8xx.h>
( z% p7 l) ]1 ^. d) E#include <mach/mux.h>% r2 E* ~- Q2 K" u9 G. w: I' v
0 X; K5 q: p4 M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 S. Q+ n; X* Q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) Z6 Z* r8 f  q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 _& y0 z# E% Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 r9 y* `0 W- |2 }

4 w, E& A4 v, B5 @+ B% O+ G$ [; e( Z/* assign the tl som board LED-GPIOs*/
8 [! Y& ]7 {( x0 o% j+ `+ ^% A+ g, Tstatic const short da850_evm_tl_user_led_pins[] = {0 B$ w  C* A: Q( S! x. W
        /* These pins are definition at <mach/mux.h> file */6 D' P8 @" _& }# E: N4 T( S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( o  N* S2 D/ d5 D        -1
) J! g6 l7 t1 {$ T% w8 m};
4 c4 O' B' ?2 D/ O# g7 N
$ `. w! R. S( t0 z0 U4 y. l! @static struct gpio_led da850_evm_tl_leds[] = {
7 J) c3 m% K# s* E; E        {
" n* {# Q) f* t: o# ]! k                .active_low = 0,
) `( v) l2 ^7 s9 A: _                .gpio = DA850_USER_LED0,/ v. W/ b& U  R: j
                .name = "user_led0",+ F" C3 N. h# X3 ]3 [: J" Q
                .default_trigger = "default-on",1 A/ o6 b( Y1 @9 ]% V8 C
        },
- W- P/ k6 S# k( J, _7 [0 Y        {' k1 l) V2 M" t8 V7 h
                .active_low = 0,
. C& P9 A) I; W$ O7 L                .gpio = DA850_USER_LED1,
4 r9 v! l* Y" l3 p& @                .name = "user_led1",
& O% @7 j* m1 d! e! T                .default_trigger = "default-on",$ N4 F3 P  U; y6 s* u2 w5 V
        },6 u, V% L8 \( P' U9 ]+ P- L0 p
        {
3 C% Z  k5 @# C5 O                .active_low = 0,
" @0 i& ~( f# E6 D, e3 s                .gpio = DA850_USER_LED2,/ K! W6 D) p2 N/ C
                .name = "user_led2",
  g. ^$ S  S, `9 z9 B$ V                .default_trigger = "default-on",: ]: |# ^# @# I7 H. q
        },+ ]" _# G/ s, M$ g3 ?. }
        {" N1 t5 Y1 H/ X
                .active_low = 0,
# v2 h! U* n8 i2 M2 U                .gpio = DA850_USER_LED3,# g' i6 z# O% ^( b% N3 k' w' ^
                .name = "user_led3",( ?! H7 q+ B3 ?
                .default_trigger = "default-on",
, t1 X  t& W1 T0 j" X        },+ j. a+ j/ J+ \2 v
};- q+ I! ~9 \$ Q& i; @4 o0 y
$ z' G1 z0 s6 V- z- V* Y. `
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# d0 s: L2 v, ^7 ^" U: c, h        .leds = da850_evm_tl_leds,
" r# W1 A# g& t9 j3 r6 t6 M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 x5 r' s1 K; `* B4 s1 [};% N+ G6 @- Q5 `3 Z( X# H' T& Y

' u: ~) h5 U! g# i% j1 R0 j+ Sstatic void led_dev_release(struct device *dev)
8 U/ U( S6 ^. Z& j3 f! q, `{/ K, b* e/ }0 c- v
};
9 K! O8 D5 m  w: m% [5 g( l& X9 N% J9 f) j1 D5 m
static struct platform_device da850_evm_tl_leds_device = {- M, w- g- X* D" q, _
        .name                = "leds-gpio",
  \" k4 P/ m6 ^5 ~8 T        .id                = 1,
# W- t& Z( B5 w5 J        .dev = {
% G- p* X! |, o& O                .platform_data = &da850_evm_tl_leds_pdata,8 \$ Z6 g# K0 G& l# f6 M- Q+ ~
                .release = led_dev_release,* z/ G4 ]) J0 }- T% n
        }& n! Y. O9 Z& I1 e6 p
};
: k6 @% [# Z( M# q: c6 m) ^/ ~  P8 O
static int __init led_platform_init(void)
; l! `4 `7 U/ u  e) Q1 v{( W3 B/ G& _5 O6 G: }5 ?
        int ret;
4 M% ~( @& q0 z$ M: v0 ~$ j#if 0# ?  V" m% q4 V6 Z2 W, o: Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 p0 ^9 H! z4 i4 r7 `/ L6 y        if (ret)
# c& o, h/ z5 T7 S* W3 O% F! P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& K5 E' u0 E1 }
                                "%d\n", ret);3 v4 |3 H0 @7 b. A
#endif
8 H& }3 ?& F% n8 ~        ret = platform_device_register(&da850_evm_tl_leds_device);
: T0 ]: q' x* M/ c0 C/ D, ]0 ?% @        if (ret)! b5 O) h4 ~; `' l
                pr_warning("Could not register som GPIO expander LEDS");" G/ k* Q. f/ k+ A$ V- L, B! K
        else
5 C/ |9 u" Q. o$ _) D+ g                printk(KERN_INFO "LED register sucessful!\n");
% i% ~8 m1 e, m4 Q" w3 h9 |) T0 H& E
        return ret;9 ]6 g) u6 S# |5 z; C
}0 ]  ~4 z+ g; H( G, |3 L* P" n! {% R
8 }4 l! d& C# P3 ~
static void __exit led_platform_exit(void)
4 ?% I1 ^$ C$ Z, H# O1 t- n  A{: u  B4 d& G& L4 t5 g& C
        platform_device_unregister(&da850_evm_tl_leds_device);
5 h& `/ t/ `2 i9 |( ^3 A# |1 p8 r: v5 x3 ^; n
        printk(KERN_INFO "LED unregister!\n");
9 v( _4 a+ L# G, g/ U. Q4 X5 c}
% ^5 a) t- I# ^
, n: x/ J) z3 |4 a1 o% |/ [module_init(led_platform_init);
4 ^0 ]: z+ L$ L; _module_exit(led_platform_exit);6 i$ Z) W& l; r) w3 v
) `2 w4 l7 a' [+ V7 q/ [
MODULE_DESCRIPTION("Led platform driver");
5 G! F7 O& [" `/ z- oMODULE_AUTHOR("Tronlong");( b2 i5 H/ Y9 V  _& w% v& P/ `: T
MODULE_LICENSE("GPL");( m: H: H& B; f* p4 ]
8 S0 X, C) v$ M* i) C4 f; V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 13:39 , Processed in 0.039964 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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