程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 _7 }7 `! L# V7 f8 ^1 c
#include <linux/init.h>
4 j, Z- n6 `. ^. U! `#include <linux/module.h>
1 n& P& N9 ]7 s#include <linux/kernel.h>
0 k& c- e' r5 y9 X4 c#include <linux/types.h>5 s8 d& k0 v  N# j, ?) N
#include <linux/gpio.h>, `3 y# k7 n( ~3 N# e
#include <linux/leds.h>
% M  x( t# A+ U" j, m8 a* I#include <linux/platform_device.h>* I* p) w: U8 j5 `- r

2 R0 }3 H3 `( M#include <asm/mach-types.h>2 B! Y8 k7 J8 B6 i7 D: }
#include <asm/mach/arch.h>
1 y/ O8 `. c0 w* ^) V  b! _#include <mach/da8xx.h>
1 h+ h1 W. [, A& \/ V- w( Q7 H: a9 r#include <mach/mux.h>3 J1 V4 U5 [; r1 R3 P% C
, k, B( l; n4 p! [4 m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ g/ p% R9 [7 R8 V2 V$ u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' O) y  o5 _; S2 A/ Y7 b/ ]/ y0 M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  W" U6 d/ h1 s0 l# s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" v) @0 X  Q$ Z
6 w; A7 T5 [* `
/* assign the tl som board LED-GPIOs*/. L; ]4 g" C( H9 ]9 A$ @( z
static const short da850_evm_tl_user_led_pins[] = {
2 i6 m0 ]( x, C* G- p0 O! {        /* These pins are definition at <mach/mux.h> file */
- Z' `6 z/ C4 t1 \/ k+ [: S+ w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& I& X8 q; \: `8 S- m) K
        -1. i* ]8 r% P& {9 M
};
. T$ K+ e! q5 s# }4 \( r
, R3 {" x- v8 {9 @2 f2 estatic struct gpio_led da850_evm_tl_leds[] = {
# Y% s6 n3 x  B  ?% t  |        {' Z1 C$ L  A. u! k2 ?) i
                .active_low = 0," s- V' }0 D8 x0 o, ^( o
                .gpio = DA850_USER_LED0,
2 Y5 f: X/ i6 c* O) |/ q' T' ]                .name = "user_led0",; j. R8 x/ m( T$ J
                .default_trigger = "default-on",& `% U7 [& F4 H0 s& l9 K
        },5 Z2 A6 \( e) b: z
        {( f4 D! w  |& V: Q4 Y( Y+ `
                .active_low = 0,
4 K' F$ X/ T) f7 \6 o                .gpio = DA850_USER_LED1,
0 x9 m! K. `. ^6 D                .name = "user_led1",6 X' u+ {/ T# }6 j. \
                .default_trigger = "default-on",5 B6 O4 ?# Z; L% F4 t+ c
        },  e& T& j+ H9 p7 N/ Q
        {
) R  x% }2 `8 C                .active_low = 0,7 h, K+ K9 I4 |% \, r* f. n
                .gpio = DA850_USER_LED2,# Q' h/ \# o$ l( d- k
                .name = "user_led2",
8 i, f! u( f$ ^* G- e# p; X: e                .default_trigger = "default-on",
5 l# R9 o) X% l) x  [3 I        },; ~, |4 N  d' J
        {
; b- \' h, ^% M; d/ X                .active_low = 0,
0 D1 H8 `) E! X6 Y% b) G1 d                .gpio = DA850_USER_LED3,: p) s8 U+ z4 Z( x; X! |# x# G
                .name = "user_led3",
4 ]" k" p9 v' N( G: e                .default_trigger = "default-on",+ _& _; p/ _3 X
        },
4 W" Z; f8 I+ T};
6 \. }/ z/ a7 t0 _6 C+ i3 n8 U9 T6 F4 X( p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ Z1 {6 B0 g. [8 H# u. m
        .leds = da850_evm_tl_leds,
4 ^2 W$ J+ Z# k/ ]* [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 t! c# P8 N3 q+ U. T& L
};
& F7 a* u" }. E8 g# p; K& |
/ F" O8 J" ~; e8 k& S/ Astatic void led_dev_release(struct device *dev)( J( J2 B( `; M' A/ b# ]
{
( W* B  z# c2 R# e% y% h# |6 L};* ]- h" J$ W& z! e; n2 @0 S
4 ^( o2 d& S# M6 @! c) Y
static struct platform_device da850_evm_tl_leds_device = {
) E' h5 P* ]& y. |2 |        .name                = "leds-gpio",
# |& @) j& G3 z8 n# S  T& _        .id                = 1,1 W; X5 p; @+ n8 L; ?# b
        .dev = {( \0 X* n7 V  p# D0 w0 n! ?9 F
                .platform_data = &da850_evm_tl_leds_pdata,
9 n7 Z; g' l  Q/ X                .release = led_dev_release,, M9 K" T5 |+ R8 o
        }
# B" ]; |: ~8 M* u};. L# G  O, W9 n8 @
* ?/ `0 v: z; G$ R; P& C
static int __init led_platform_init(void)
3 B. `: ^* B) B; V& L{
4 D& q) {' c6 c: T* N, z1 r        int ret;, b9 b) b" q4 o! M/ d" I" t
#if 0
# d6 p' W  Y& {- B8 P5 Y2 ]' _        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! J. v/ D! N" p9 u: X$ e, j, F
        if (ret)" T  r8 U$ E$ J# v! `, s; k' v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) \) Q; Y5 b' j; c  z                                "%d\n", ret);# h( v3 |/ l$ @9 T9 d& Z: T
#endif6 ?+ ], @2 s( h+ Q# N
        ret = platform_device_register(&da850_evm_tl_leds_device);% e: p5 B( p; B/ }
        if (ret)
; X) f, b1 y* `# W                pr_warning("Could not register som GPIO expander LEDS");
" t$ s. p5 J+ \' }8 @8 B/ R        else
8 G7 _! n6 a; K/ s6 _                printk(KERN_INFO "LED register sucessful!\n");
8 i# m! `3 {. H7 _  r* _! G! M% h
        return ret;* ]7 y# ]: j  F! C0 _* G
}1 |: |; C6 L0 V+ E% a
# x2 f+ Q9 G2 R; `- a
static void __exit led_platform_exit(void)& }$ g: T/ F) c8 C8 t! M1 l
{
- k: j. Q0 F# [. _+ v        platform_device_unregister(&da850_evm_tl_leds_device);- O1 e4 X" \5 s, l

% o  D- G2 Y/ P# g# V) {, s        printk(KERN_INFO "LED unregister!\n");& \* V, I1 u  ^3 S
}- F2 y: D8 G% Q4 B& k5 ^
8 q0 L- d' K8 F/ e5 q+ @9 _
module_init(led_platform_init);
# U! A8 ]- l# [2 e! k1 Smodule_exit(led_platform_exit);
- b- ?" O. y$ d* V( b  o+ h! B/ K7 o4 a
MODULE_DESCRIPTION("Led platform driver");
5 M" z# F# r5 DMODULE_AUTHOR("Tronlong");
* c2 U- n1 d9 l. O7 XMODULE_LICENSE("GPL");
! c4 S7 l8 p. R3 K! I0 T; c6 {$ O; d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 04:33 , Processed in 0.037957 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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