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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( N0 J/ _6 X7 y! ?#include <linux/init.h>, J+ Q4 f0 u3 h- |3 P; }- s
#include <linux/module.h>
  d/ V- t2 v; B#include <linux/kernel.h>
& m; s0 c! e2 H0 h6 H; q#include <linux/types.h>
0 q- Y" |5 B& J, z: x/ b#include <linux/gpio.h>' z8 F9 Y) }  k1 D" F/ Q3 o
#include <linux/leds.h>  D7 m, o# E! S  }$ n; s+ m
#include <linux/platform_device.h>
5 O$ G  o3 F5 o3 C
& k$ Q! v) t7 X" Z$ P9 h3 ^#include <asm/mach-types.h>9 T/ m* N1 N& N. i- R* t+ r
#include <asm/mach/arch.h>  _/ C% a' c* f- y. L
#include <mach/da8xx.h>
6 Z  {: f1 u" X" z  v! s#include <mach/mux.h>& ]: ?6 P$ x. B/ j+ p7 H1 s

, d1 ]; S9 I8 ~- R" [. i9 c+ Y& y8 T& Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). K% R( C: s. x" @
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( a1 m* `4 h* l3 h% I" y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. Y3 B6 ^0 C5 T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- A. K3 Q% s3 s. S
+ r% n! d1 ~7 M* J
/* assign the tl som board LED-GPIOs*/' S) s# s* Z8 o) y2 z0 v9 m* J5 }
static const short da850_evm_tl_user_led_pins[] = {
7 Y: K" r' ~1 {% q7 p        /* These pins are definition at <mach/mux.h> file */: {3 t) X, e9 ^3 T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. Q/ l! j" h( K
        -15 J) P/ [, e- Y2 \1 A" Q; e
};) m. b  v: M2 j( F
  l% _2 S: k" J9 M( B& k* u
static struct gpio_led da850_evm_tl_leds[] = {
2 z- y- T! ]* ^$ I# U( [        {0 Z0 i8 \: H# a- V& R
                .active_low = 0,
5 s1 e) @5 y: p6 c                .gpio = DA850_USER_LED0,
+ N; _/ Y; _* U) [8 n* g5 m                .name = "user_led0",
' z+ h3 [& O1 l. U  b. t1 r) x                .default_trigger = "default-on",* b2 f- h6 X, m1 K$ R$ A% R
        },
# k: p3 s' d* k- w& N' D. D        {/ m. {; V: ^0 h, t% I- S
                .active_low = 0,4 b) R  }: @+ w$ u" ?
                .gpio = DA850_USER_LED1,
* {8 ]2 I, r0 u6 X3 `. `9 }4 ]# Z                .name = "user_led1",/ {2 B3 N; a. c6 |5 L
                .default_trigger = "default-on",
$ E0 a- j: a$ H& a  R4 M        },
7 S' t7 ]: r9 g$ R5 Y        {
6 N9 r% ~0 S; B( N7 w) o                .active_low = 0,7 ^) z  X& C" A7 m
                .gpio = DA850_USER_LED2,
, J" x/ E5 E1 b! v9 e                .name = "user_led2",4 y% d4 W3 [( `: Q. S) [2 @' \
                .default_trigger = "default-on",8 e9 t( u7 z! S# ]( M, h: Q
        },% A, F$ v8 _7 {
        {
6 y5 k5 ^! Q$ Z7 v# B+ v' N                .active_low = 0,
5 e# [* H" m" N, `# ^) \                .gpio = DA850_USER_LED3,
4 w, `) W/ Y. F                .name = "user_led3",
6 T+ O( c' y' z) u5 a" A' Q                .default_trigger = "default-on",
% b5 W$ H2 l+ p: v/ c        },
7 d) m: I/ S: V};6 P, B8 Y* h: G! x# b# T3 ^

8 L# L# W5 f8 h2 Ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: a4 b, C. R/ T- h6 m) c7 X# ?
        .leds = da850_evm_tl_leds,0 C/ n0 C! P/ j) U! Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ h+ y6 \2 o2 O: E* q$ ?7 ~
};
' T' ?! _# O" h, _( m3 _) y0 ?* E
* ?7 |2 {3 }4 y+ A% {2 h3 Q: d$ ~& astatic void led_dev_release(struct device *dev)8 B6 @. ?! A# s+ g, i3 N9 @$ O% X2 T
{
" \$ s  P/ \+ B};
+ \0 h# g3 f: _1 h
) k5 V( B7 E- t  {/ estatic struct platform_device da850_evm_tl_leds_device = {
" W9 Y1 m0 n) O+ _  s6 ]8 G' P        .name                = "leds-gpio",
' {; Q3 C% g' [! A5 e6 |0 J) n        .id                = 1,
& e3 n7 Y$ ^7 A4 k3 D: N+ x        .dev = {( v  \# q+ v' `' ~+ v, _6 E
                .platform_data = &da850_evm_tl_leds_pdata,% J. C3 \. x/ N
                .release = led_dev_release,% q& I: k% A. A, r; U
        }# v5 R* R* U* V  t
};
- n& U8 [% [: Y4 V# d- Z& J
) ^. h+ P* l" \. i7 Jstatic int __init led_platform_init(void)$ J2 h. ?0 e  x. M
{( B/ l! g' x/ Q# q1 o/ Q  J
        int ret;. K) |  E& P3 a
#if 0, R1 \# g0 b/ S! P; Z, v- C. q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 m1 X0 O' U8 S  O2 Y1 K: X        if (ret)3 `$ p. |3 t+ L- H7 p0 g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; z/ q. K, F0 B6 Y- B
                                "%d\n", ret);
. X  ~! u, Z, u; }2 P5 L#endif! r8 D0 O$ G; x' ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
% h7 }8 \/ E: ~        if (ret)
. _. D( B# z* _- r2 }                pr_warning("Could not register som GPIO expander LEDS");
' D9 Q  q; Z$ \6 j0 r% d/ U  H        else1 [. D4 D; W: q  X
                printk(KERN_INFO "LED register sucessful!\n");
% A2 e. L! T) r; f3 `
5 {1 _! U2 v! b6 q3 P8 h( e        return ret;
2 V/ N8 o( j. M}0 N6 r& O* k5 O& W' B6 j% L# n

1 D( F. @1 g! c' }0 Bstatic void __exit led_platform_exit(void)
" H/ H# e1 B7 v- w1 O' h{
, w# @  v4 E9 k& h2 P: D        platform_device_unregister(&da850_evm_tl_leds_device);
4 y. l1 @4 ]) Q0 g/ L+ U  l
! I+ N  ~% D5 [/ n8 O        printk(KERN_INFO "LED unregister!\n");- @' j0 H3 G; P$ w: ]4 f
}9 b7 D$ |- \' Q7 q  e; G$ N/ B0 \( ~
6 n+ M2 q. z3 Q/ e
module_init(led_platform_init);
  S- q0 U: h- Fmodule_exit(led_platform_exit);. t% T( _% x8 X8 E! O5 u. c
, K, G: Z! ~# P2 [
MODULE_DESCRIPTION("Led platform driver");8 g$ l% Z! l0 \" ^: v; d! c
MODULE_AUTHOR("Tronlong");
+ b9 j5 S2 h  n8 @- X# W8 kMODULE_LICENSE("GPL");
7 m/ }$ I  I: @
+ z+ d' ?. }6 x" a' d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-8 05:51 , Processed in 0.038146 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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