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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# |2 N# v6 B; M1 x- r% j( `) X#include <linux/init.h>
1 W/ P4 `) n4 h5 {% n  C' U- @% S#include <linux/module.h># c/ \' b* t- g
#include <linux/kernel.h>8 H" I" u* [! r2 W
#include <linux/types.h>$ j; _& Q& e8 {# F- C
#include <linux/gpio.h>; H) Z! ?- W6 t/ W+ O
#include <linux/leds.h>
! {7 g7 O! h' q#include <linux/platform_device.h>5 N% h& R& {$ W) F& X

; O# d7 P4 U6 E#include <asm/mach-types.h>' }# p: J* i3 \5 ]( J  I4 s
#include <asm/mach/arch.h>" R4 a' }) s. D' @
#include <mach/da8xx.h>  t  Y7 |: t9 o. I
#include <mach/mux.h>
5 U' Y5 ~1 d; X! R" a2 m
& X; W' L3 j) X6 T. K7 F; t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ g' t- `5 C7 H4 o2 ^. W5 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* H, l% N( W& r# i& Z4 v) B" h0 l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! ]% ~* s3 d) z. S& l2 H2 s, v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# n3 N8 T$ `* _2 T  v4 G$ _5 B% B& ]
/* assign the tl som board LED-GPIOs*/
/ |! n' K9 Q. C7 jstatic const short da850_evm_tl_user_led_pins[] = {; T( z: E9 ]6 o& F4 V. u
        /* These pins are definition at <mach/mux.h> file */
4 [+ Q" p' |4 H7 `7 E6 @" V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 `; Y8 m6 n2 ^' w        -1' B$ W  b# _( ?# ]& q% l: |
};
* r1 ?" {. _0 B
$ n  b, p$ K4 [  I* N& Y- Dstatic struct gpio_led da850_evm_tl_leds[] = {; `6 p; d! h3 j0 B0 H# t
        {; v" J7 D% u! d: G5 n
                .active_low = 0,
$ ^% z* x4 j1 g. V5 M  u                .gpio = DA850_USER_LED0,
+ a8 j) E  ?6 {2 X: G                .name = "user_led0",0 \! m) E( x$ e  y: g# ^  j
                .default_trigger = "default-on",
5 s/ l2 h9 ^( W        },/ c, ~! @: P% d- z% r, v
        {
+ Z& M7 ?) k% G. n1 T' U9 u5 u# m                .active_low = 0,
0 p: ?7 n! x$ ]: f! k5 K3 c8 X                .gpio = DA850_USER_LED1,
- e* I9 L3 B8 f. ?- N. ]+ j                .name = "user_led1",  x% z) J6 @+ k0 o
                .default_trigger = "default-on",  \' s8 O" c7 C; [. j' e! {1 [
        },
* W: p, B( F: w6 O2 f; j: `- Q        {
1 j! U0 a2 s5 G/ I& k- w                .active_low = 0,* N0 o* ]0 ~, X* K
                .gpio = DA850_USER_LED2,
+ ^) j; I: g% N; [9 P                .name = "user_led2",* J) b7 Q+ r* c, n& {
                .default_trigger = "default-on",
) M- s* n8 y( ?/ Y7 D# ^% {        },
' T3 o$ u3 z3 P0 N, @, ^6 [! m/ w/ j  E        {
5 C  q" L" f: @! I6 l9 p4 U                .active_low = 0,
8 Q  ^3 E$ ~& ]; b. D                .gpio = DA850_USER_LED3,: w6 d" [4 ?, B% v1 U. S
                .name = "user_led3",
: x- O5 C  D! s% L8 N% J. f                .default_trigger = "default-on",( V8 H' V4 T. t1 J4 o
        },
8 Z" s: F4 @$ s};
: e2 f7 ~( _1 O, Q
2 w1 t6 g4 n6 T5 r- ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" `6 ~& `3 v7 L- \0 ~        .leds = da850_evm_tl_leds,: M" z& D9 X5 {) X0 K: w( W' L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, p1 E$ d: r. f3 ?( m5 x; d! y( c};
7 D& p6 f% g" k8 T1 [+ J9 {6 }; v! Z* F+ b! M
static void led_dev_release(struct device *dev)
6 c/ ^7 E! H2 P3 e  R{  O, ?) b5 Y4 s: }8 M. _' S
};
. C) d5 j: f  b" Y, Z3 i/ h
7 k3 e- e! |" w+ ^) T9 Gstatic struct platform_device da850_evm_tl_leds_device = {) H, M  {: I! E
        .name                = "leds-gpio",  T( n1 H& Q- M: y2 N- x; w
        .id                = 1,
6 x( T! T, C+ m  l        .dev = {
" w9 y0 G$ M$ [- H, Y3 t  H                .platform_data = &da850_evm_tl_leds_pdata,
1 k) [9 P6 m% O3 Q6 j                .release = led_dev_release,# x7 k7 I: B; L$ e6 S6 q6 p
        }2 Z- w7 u$ H8 F8 f; i  m
};1 ?8 w2 t9 ]8 M& x# l) z& f- e
# K, d, I4 U# @
static int __init led_platform_init(void)  X  G, H& x0 n6 X
{
4 v: ^% y' h3 X, T4 a" E  ]        int ret;5 ]: i( V9 Q1 ?1 p
#if 0
; `8 v( T; W" ~$ D+ Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 p# t( T3 o- U2 h; w        if (ret)
  J- S- K8 Z' P+ B% g. i* w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". T8 V0 |3 s* ~3 x+ s
                                "%d\n", ret);7 V6 ~* w8 u, e
#endif/ d( m/ z) p* J3 @0 I7 f2 \
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 |* H. N2 y* ~        if (ret)
; m5 m) e, k) i1 E/ e- n; S                pr_warning("Could not register som GPIO expander LEDS");% Z& F" h9 W& E/ s6 r1 h2 L' r0 ^4 F5 Y4 l
        else; D8 `" w- N+ h7 T+ G2 E- n
                printk(KERN_INFO "LED register sucessful!\n");5 F1 o9 Q* M7 v% A1 u! \1 I
% ^& m" w! A; H/ Q
        return ret;
; w$ j* B  A# x& }3 P}; {( G: e: a( _

6 I$ w9 `' F3 }! {0 vstatic void __exit led_platform_exit(void)6 ^( `* n0 i- {( T5 k% [
{
7 e' ~+ j. N( b+ [( a+ E+ j        platform_device_unregister(&da850_evm_tl_leds_device);
' j2 M6 k: {5 O) b+ O- R4 J/ N/ n- Y/ t: \
        printk(KERN_INFO "LED unregister!\n");, r" h$ p5 O# c+ c- k* N
}
8 k9 E5 m2 m" K) L3 o" h8 [% m5 D
module_init(led_platform_init);
) ~! F* L3 V2 p" P6 D' j8 Amodule_exit(led_platform_exit);, x' o( B4 A# J8 b- p& c
& C' I3 L* }5 {3 f" |& T& Y
MODULE_DESCRIPTION("Led platform driver");
1 t! T* J3 }. p- T  dMODULE_AUTHOR("Tronlong");
' r4 d1 Z! @6 Y, F+ O$ B" dMODULE_LICENSE("GPL");
- k# M* y, D/ u' e5 W- k
8 p+ w& F' {0 \/ A" Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 04:41 , Processed in 0.044027 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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