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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, A4 x" T; ~0 I! n# T( q
#include <linux/init.h>5 D: u& E6 j' ]# K+ A
#include <linux/module.h>
. p' ~" K$ D5 d) l# C#include <linux/kernel.h>
" O7 p0 d0 z$ O; B+ B( A& |  T8 g#include <linux/types.h>8 Z' v4 V( Y7 }2 D
#include <linux/gpio.h>* d( y. k2 ~, ?: Y) R) k* r4 Y. O4 h) t
#include <linux/leds.h>
! f+ m+ V8 |; W6 v$ s8 ^8 p: w7 n#include <linux/platform_device.h>- [& c4 j" r- J# O) a3 F
* j- J" s2 ^7 q9 `! _
#include <asm/mach-types.h>
( M# @5 S/ H, t#include <asm/mach/arch.h>
5 Q& I3 R1 x$ g% o5 e1 z- |$ u* ~#include <mach/da8xx.h>
7 ~# ]# R: i" P( Z" ?* P#include <mach/mux.h>
( n  t' ~. w7 k+ x% y  g: C5 e1 d6 e' W  ?9 C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 ^0 T2 u& }' ]1 [, c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 M2 K7 B# _: a8 u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 q4 ^6 G1 z$ |- K/ G0 F#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ c7 G2 L5 A2 O5 S! W  Q) E& K7 @

/ T# _  Z, ?& _+ x1 e1 s1 H/* assign the tl som board LED-GPIOs*/% T+ `) S9 m$ v" M- @
static const short da850_evm_tl_user_led_pins[] = {4 p/ y+ K9 k& B( q# K; r# _
        /* These pins are definition at <mach/mux.h> file */
$ ~; P2 E4 ^/ V' T; |' Z6 c$ W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ {, z; Z8 U0 o
        -1; [3 |: Y4 `3 S( I3 u* O
};3 ~; d- p) u1 P( ~! U
6 N% N* f, q' |; A* W
static struct gpio_led da850_evm_tl_leds[] = {6 t+ }) Y: b" e$ f
        {: U: c; K/ K" m' |
                .active_low = 0,
4 u' s8 P+ s6 x8 m4 A5 B0 X# s; ~                .gpio = DA850_USER_LED0,9 q8 W" a) V( k$ S
                .name = "user_led0",
7 B1 D2 Q$ l1 K4 ^/ j                .default_trigger = "default-on",3 F% {! z6 X1 \
        },
! v# \! G- T, X) H5 L9 D2 g5 W        {
  B$ s+ z" u/ d& R) g" x5 V                .active_low = 0,/ l, C. x+ m/ ~$ ~% B1 U
                .gpio = DA850_USER_LED1,
# s2 ?! \% |3 n% ^                .name = "user_led1",$ _: E3 K: a0 J! p1 ^
                .default_trigger = "default-on",
3 Q8 Q# P+ a$ o- d) q: @7 o        },; u+ l! L! Q, ~+ h7 |  `3 l
        {1 _2 b/ U$ r% h. h$ @: M, ~8 a2 {- `* J
                .active_low = 0,/ x8 U6 o1 E# Y! f0 ?0 l
                .gpio = DA850_USER_LED2,
' W5 B: P( R5 ~; T                .name = "user_led2",
% `7 F. A: C: z% a                .default_trigger = "default-on",
4 Q: k! k. W6 H$ T* |        },
# ~2 P/ H6 Z2 S2 y# H8 C3 E. f. ?8 @        {
/ v! ~! b& Z3 w: S                .active_low = 0,
% Z, v  w0 L' p4 d                .gpio = DA850_USER_LED3,
7 p* J/ W& }( y. f5 w                .name = "user_led3",
4 j/ f% }- J* @/ [6 c8 e                .default_trigger = "default-on",* |# H: _2 x* _2 q& E8 g9 }2 J
        },6 `' t$ O1 {/ I, P0 |
};
) i" y& Z& u& ^" h3 ~5 f% `- W. ^8 }$ p+ i0 t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: Z  Y6 L3 v1 _) N& ?- t% @
        .leds = da850_evm_tl_leds,5 X# v  Z" j: G/ `
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 L$ c. A  j# R9 R9 `+ X};9 ^3 t! L, h4 m+ s; \+ M
$ G) g) m, W* Z) W5 s7 d' w" Y
static void led_dev_release(struct device *dev)
2 X( P$ S0 M1 k* q3 [0 o{! z% C; a. f$ O1 r' m( U9 V. c
};
9 [$ Z' j- k& x9 |5 E  f
: W  Q% u: I2 R6 U4 l) ^static struct platform_device da850_evm_tl_leds_device = {
( b) _0 l+ X2 a& j; |        .name                = "leds-gpio",2 C6 X3 s! g3 }( L2 d+ q9 h9 l
        .id                = 1,* o0 t. v! l+ Q/ G( ?( l
        .dev = {
$ v2 u3 M5 }: M. ?$ }( w; I                .platform_data = &da850_evm_tl_leds_pdata,
& ~; y; t1 g  P$ ^/ q                .release = led_dev_release,
9 l, z: c0 y$ m) t. `( \2 m- D( T3 N        }: X) y! k( E2 l  v8 }- U& A
};' \- m! p8 R" R6 \- @. _

2 ?7 \6 O7 }* m4 N3 X# h3 Astatic int __init led_platform_init(void)7 Q' V0 t$ A  V3 f9 ^4 R- p7 p
{* I6 l- |4 z) a" r) k4 i
        int ret;9 I- a: C  a0 |4 I5 J
#if 0
8 k* ?( C! X- d6 T8 _9 t+ P2 K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( A) r4 w  c$ D! Y
        if (ret)' G) {( S" S; i: z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", N6 }; I; t/ I+ m5 g
                                "%d\n", ret);8 }) [0 A) o" q4 F2 w( e
#endif
* |, {- l! u3 _/ W9 e        ret = platform_device_register(&da850_evm_tl_leds_device);
/ U- f- i. p" _5 e7 }$ E5 D        if (ret)
9 Q' Q* E' _2 ]' T1 Q6 g  p$ T                pr_warning("Could not register som GPIO expander LEDS");
% ^: }' s7 V6 R1 d- {( G- O) u2 _        else
+ a# K2 {' n1 B! E" C5 K2 h* n% K                printk(KERN_INFO "LED register sucessful!\n");
, E6 p% x' _! g( C3 H  v) K  ]3 _
        return ret;
5 Q/ y5 Y5 j, t) u9 {5 `8 {' q}- X2 g: q. p& E/ P* W& l

: m2 t0 z8 x) w6 _% k5 E3 E  s3 qstatic void __exit led_platform_exit(void)! S; E0 Z9 f! A2 \
{* ]* V) U- ~; m# J
        platform_device_unregister(&da850_evm_tl_leds_device);& F4 e( f5 E' h% I1 H( e

: Q5 B/ k: \# z4 N: K+ u% K        printk(KERN_INFO "LED unregister!\n");
$ `( |( a0 Q+ N7 s4 n4 ?}
1 a3 @; d9 Y9 ]4 S2 F3 k0 K$ o: t* ^2 N8 V3 u; R3 X
module_init(led_platform_init);
7 |  c, c1 h4 V% kmodule_exit(led_platform_exit);
  x5 k3 {4 s8 g: |! p7 [  h0 a% q# \. H; H6 Z, @
MODULE_DESCRIPTION("Led platform driver");
8 y" e- E5 S% x& Z% o7 M: m. LMODULE_AUTHOR("Tronlong");
/ X) }# W- E% p9 n. _MODULE_LICENSE("GPL");4 o6 L7 V6 a9 \: ]2 P& Z- U$ R+ y

+ v7 @: l) ]& r8 e2 j. k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-30 04:13 , Processed in 0.038974 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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