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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# N2 _* \( N8 ?  @#include <linux/init.h>' |! O8 x5 F2 V! m) Z: z7 L
#include <linux/module.h>
  V$ J! \' v) {( B: G4 U# W( x#include <linux/kernel.h>
6 e  z; q/ d/ y3 n4 |  }. b9 ^#include <linux/types.h>- F0 V: N" ?2 b* H! o% Y
#include <linux/gpio.h>
3 G& _0 I& A# E. D! ]. b! q#include <linux/leds.h>) R% X& {8 w9 h  J  J+ u( u$ @1 ^
#include <linux/platform_device.h>
8 D( e  J- V- K8 Q) t# u( G+ ^& S/ u8 Q  C5 J
#include <asm/mach-types.h>& o' z+ R6 B0 {! U5 h1 I
#include <asm/mach/arch.h>
% M$ C. _) @/ e% F% D#include <mach/da8xx.h>
- I  S: N+ Y) \# B( n$ [" ]: l! R#include <mach/mux.h>3 I# ]' U9 b2 O5 |6 ?( S

3 I, I* q% r* [6 G8 A+ x#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ |4 o% i( A' C" x+ s- p% n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# U8 D8 O+ V) P7 e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ s' \, y8 \& @3 y* C9 i5 X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 M4 }3 r0 g, h/ o* k

  C) W4 d1 y$ V1 U. Q" ]/* assign the tl som board LED-GPIOs*/
& a, o1 Y/ Y- M" |: sstatic const short da850_evm_tl_user_led_pins[] = {
$ R, d: k2 P+ D4 j4 e; h) E- [/ ~- x        /* These pins are definition at <mach/mux.h> file */4 T! M* b! p8 X1 i) i$ W
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 k1 F6 ~( G4 {
        -1+ [& J: s+ G3 c6 L- j' u2 z9 V
};
" X  H5 ^- h' R+ u3 @8 I/ v/ K
2 }# ]& n+ |5 [0 jstatic struct gpio_led da850_evm_tl_leds[] = {
! b1 h$ g  @6 n) ]! s& R9 E        {8 E+ V0 ^4 t8 n$ @' ^# r+ w/ t
                .active_low = 0,- d; F! k6 r; \1 p' \& }
                .gpio = DA850_USER_LED0,
+ Y7 N/ B/ z. }1 v$ Q/ t                .name = "user_led0",' `- c" C- V2 }, g- M# d! k: `4 Q
                .default_trigger = "default-on",8 H" i7 e9 x8 E  {7 P
        },3 r" ~9 j- L* N4 R. Z+ ^
        {( ~) h9 M) k1 L) r9 j& x% s- l
                .active_low = 0,
* o4 W$ E- N' q% j& T  T# V" |                .gpio = DA850_USER_LED1,
% @: C; y: {/ ]" v; ^' o+ @" m                .name = "user_led1",
1 e8 u# x) i1 v5 Q+ {4 x% d                .default_trigger = "default-on",
+ \$ A1 F9 p( z        },) @/ k1 _/ g2 U$ s$ [% b% j
        {
# X! f! o6 d9 \# Z2 `" v+ K                .active_low = 0,
& A; U0 X1 m$ i: v9 I/ w* {                .gpio = DA850_USER_LED2,, E& k* j* r! O) S- `
                .name = "user_led2",
& e' k0 ?9 H" ]$ u4 C2 y                .default_trigger = "default-on",
5 m  y9 Q" f: {8 a        },
0 V8 D2 i4 Z6 |! }, v6 }/ `: p        {
2 `) Q2 `' N* U4 J                .active_low = 0,
- V, Q' D7 m0 C                .gpio = DA850_USER_LED3,
( A7 ~# ]- Y7 {                .name = "user_led3",8 }; a  G6 Z- j  Z
                .default_trigger = "default-on",
3 h! k6 S! l; W( g6 n        },
+ L, S7 D9 [& f* I! g. _};( G; W: |7 Z, R
3 [4 m! _9 r/ D8 z. w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! k/ C1 z# O5 u+ E- R2 A, x        .leds = da850_evm_tl_leds," i# I% R7 y: h/ {" N1 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 w) Y1 M* s- s+ K};
2 ^; J  l% X* i& A
9 R/ ~, s" i" |) o, J+ `% A. w1 Estatic void led_dev_release(struct device *dev)
0 A6 Y! I1 `3 \" y7 C{
& `5 u5 T) ~* K% u};
2 U6 W0 {' b" S( k  F7 R8 H- V
! H4 X3 W0 ~5 `static struct platform_device da850_evm_tl_leds_device = {5 t8 V" y# E5 _1 A' X/ |* [: G
        .name                = "leds-gpio",
1 ?1 p( S6 @5 K        .id                = 1,: b" A" W; k0 `4 j3 d+ |
        .dev = {
* D5 [( W& e8 F9 V. m$ k  h% ?                .platform_data = &da850_evm_tl_leds_pdata,
( s( O3 G5 c* n& g& ?) P                .release = led_dev_release,
# \. w2 n' H* `        }" v+ }6 p" |* |  |! Q
};
+ |' W* z2 V- n* y' z
( g( P3 X$ F/ d  `& c  Sstatic int __init led_platform_init(void)
8 r4 S5 f  m( y. [* `& c{
( O: S, |6 ]7 v1 U6 j5 l        int ret;
3 ]: G0 i* T3 _/ Y#if 0
! b8 q2 m- h9 r9 Z' m" ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, \' U% h8 O3 U8 t. g6 Q
        if (ret)
. A' z; [' H* o. T. Q9 b+ S5 x; P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; R7 ?1 a3 @" V% a/ X/ m
                                "%d\n", ret);
4 X8 [& R' x. Q  [#endif
% q; W+ u3 m  _0 V( v- v        ret = platform_device_register(&da850_evm_tl_leds_device);& Z9 C  F* q0 ~5 X1 m' N
        if (ret)' Z6 O3 c% I  S' T" G, [
                pr_warning("Could not register som GPIO expander LEDS");
" A  \) V4 _7 w- @- O% ^1 m# y1 X. M        else
9 y7 ]8 w3 e2 ], N) |                printk(KERN_INFO "LED register sucessful!\n");
! n* t" W' c& S" I* `5 H
% X$ @4 C& N1 T# Q- N        return ret;  n3 e0 g1 u; j* u
}7 ^& N9 O: N1 W

4 K  W+ l6 D6 @0 V5 s" h! Istatic void __exit led_platform_exit(void), O8 j8 j: H5 c* O
{
8 g1 \! G- m7 W! o% Q        platform_device_unregister(&da850_evm_tl_leds_device);
0 g! r' F$ I4 |/ L
; I4 v) h- ?5 j        printk(KERN_INFO "LED unregister!\n");
( ~; i* x4 C5 L7 X5 k+ C}+ t3 h1 u; q6 {- F9 f+ \1 y

% l1 Q6 q  E; E2 d5 p. \! |* Smodule_init(led_platform_init);) o! y5 p" D5 ?6 V* n$ X6 Q
module_exit(led_platform_exit);+ s, Z# w5 E$ O5 E0 ?3 _

# u& S: |4 e6 Z4 K" tMODULE_DESCRIPTION("Led platform driver");7 ~) Z, I, Z( D8 L# ?
MODULE_AUTHOR("Tronlong");/ N. @) p. D: O# s) e
MODULE_LICENSE("GPL");+ z2 ~: i+ J# j$ r, y* Y

2 v: x2 R% X5 k: V/ y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 06:51 , Processed in 0.049101 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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