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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& b* M/ u+ e9 u# k
#include <linux/init.h>3 ?: M) O) I3 J! V
#include <linux/module.h>. u% M" L7 Z. Z, _
#include <linux/kernel.h>
8 w+ {  M( u% `0 C* s( ^) ^3 W#include <linux/types.h>
7 W" ?; R: X9 C7 h' U#include <linux/gpio.h>3 L5 I3 E! Z+ ~  O# y# a
#include <linux/leds.h>
6 o9 z" f* j1 d& x+ I- m% i#include <linux/platform_device.h>: ~) G7 f0 o3 _, ^; j; t& J
9 u7 j/ g! ~4 p8 ~
#include <asm/mach-types.h># o) ^+ h4 g; g3 I0 I( r/ W* x
#include <asm/mach/arch.h>" r* Z1 ^1 R1 m5 f2 {1 w
#include <mach/da8xx.h>
2 Q; |3 J6 r2 P: R" i#include <mach/mux.h>8 S. E3 l1 `- _

. \& `  M9 I9 {7 b1 _! n# i3 f5 w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- z& r% @8 g! t- }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( @2 d! K4 v  l* G& o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 M7 q, u1 ]; X# j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 \, H3 U! ^, h' _! s' [$ d( b% ?' G7 V8 ^. q/ \
/* assign the tl som board LED-GPIOs*/- a% Y7 @' Z# a+ q
static const short da850_evm_tl_user_led_pins[] = {( R- w7 A- T6 y4 z- K
        /* These pins are definition at <mach/mux.h> file */
7 q& w- _% W, k& G9 `  f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) U9 O: X$ r$ i, f$ K        -1
. w+ u* `+ I! g  T6 C};
$ ^0 m8 ?) F* f1 b0 A0 R- g, v$ N  j4 u$ [3 ]
static struct gpio_led da850_evm_tl_leds[] = {: R6 q5 K0 [0 S8 [; U+ }( w% o
        {1 H9 c8 \8 B1 `7 n. l
                .active_low = 0,
$ t( p/ ]% P9 v# y, z# G4 B                .gpio = DA850_USER_LED0,( W$ F: K' {8 a& K" G9 [
                .name = "user_led0",  T" I& Z" y) y7 V/ T* m7 d
                .default_trigger = "default-on",
* A) l8 n3 Q/ |1 K( Y, Z/ ?3 ?        },8 x* H# M; t) J: c7 T" n
        {0 a1 K& O- ?0 [$ i8 @: c% e
                .active_low = 0,6 E7 z  v9 ?' p- c, K7 y/ f4 d
                .gpio = DA850_USER_LED1,
  [! Q3 [! [) j5 S                .name = "user_led1",
1 J% a: Q' C/ Q; a& y                .default_trigger = "default-on",
. A4 g# p- ]5 J* P3 p        },
+ a! d1 M) U6 m8 C2 w0 X        {
* @! d3 D8 D/ \8 E6 p, f. P: G                .active_low = 0,7 S( C0 O+ Z' f, T9 z1 I& v
                .gpio = DA850_USER_LED2,, v" w; U. }4 }) R5 q0 M. u& e
                .name = "user_led2",/ z, Y  _( |( v& n7 q
                .default_trigger = "default-on",1 x) b5 x* }) t0 ?7 G( T
        },0 ]6 W. @0 u0 R8 Q; z
        {
8 e3 ^0 l3 ~. K0 F" m                .active_low = 0,
" _2 z* s  B8 L& _4 h& v1 E: B8 Y                .gpio = DA850_USER_LED3,
) s" M  H) v' {8 Y1 B% K5 K  Q                .name = "user_led3"," d$ d/ H+ O. n0 B
                .default_trigger = "default-on",, E+ S2 K* X' Q1 H
        },$ s) J' W5 z( T2 i
};, T& M5 j9 O4 K' E4 |

0 u  F% @! C# \1 @. nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) ?1 |! `3 T! n4 i
        .leds = da850_evm_tl_leds,
  w( j3 M$ v' [2 ~        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  x: H0 Y! A7 n; u; ?0 S8 L1 U4 s};
$ Y& n* j" {4 t$ o1 A- q/ y3 }0 U3 a2 b  o& D
static void led_dev_release(struct device *dev)  C9 ]; W7 ?- P( L
{; f" ~9 ]& D% K" \. y9 E
};
7 o3 l1 o2 i% D' T; z) y- ]8 P3 f7 E& n3 |/ l) a
static struct platform_device da850_evm_tl_leds_device = {9 l8 M0 m& ]. v6 D* L  C5 u! m
        .name                = "leds-gpio",0 e3 W/ t2 p+ b/ Q4 t& s. Q7 e# [
        .id                = 1,& V2 d: t) X. Y
        .dev = {) p" P- p1 G  g) y7 _
                .platform_data = &da850_evm_tl_leds_pdata,, q2 Y& [* v- Z
                .release = led_dev_release,
! l/ U9 [2 k+ r        }+ t9 e6 V5 t1 T* V
};7 C* v& t3 ^. j3 v
6 F4 H3 @% ?, C* x
static int __init led_platform_init(void)
9 ], I3 ]# n, {{
' N' z- C$ g% K3 I        int ret;1 v+ o$ _: _& N+ [
#if 0
! y0 O4 u$ {6 y( K# y# T# @9 T+ B        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ Z% S8 m* n9 G+ K1 @" V- A$ i( n
        if (ret)9 T  `2 [" E$ R/ Q' G0 l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 Z, \4 {( T6 b- I6 u# H* U2 |
                                "%d\n", ret);
6 R- E( _5 G4 `#endif  |% k3 `4 o/ [) ]( k
        ret = platform_device_register(&da850_evm_tl_leds_device);! g: z9 C, K$ s( a" h
        if (ret); z' i; I8 B, P: T
                pr_warning("Could not register som GPIO expander LEDS");
$ k* n* s5 H$ q+ ^        else/ L$ a' r3 v4 n7 ~8 D( h6 q; u
                printk(KERN_INFO "LED register sucessful!\n");
: s" r% k& r# h. |! b2 N: M6 k6 e% Y- i
        return ret;0 `0 w  I- [& C
}5 |( M# m- C2 A7 \' F& U

) `+ {, U& ^- K3 q, jstatic void __exit led_platform_exit(void)
. h' Q& e* A; e9 P{
0 c- y9 [/ F( P& i& r        platform_device_unregister(&da850_evm_tl_leds_device);- ?3 @! D8 F- }

2 V4 l% v) {8 x; r! d9 o+ X        printk(KERN_INFO "LED unregister!\n");+ c$ ~: n5 B9 o: e4 ^
}
* S# d3 ~0 W3 ]$ v( X0 n5 w
# j  ]1 d; g& gmodule_init(led_platform_init);
$ m5 Z9 v( S' Bmodule_exit(led_platform_exit);
. w/ N" A. p+ d$ L3 E% `: v% A
" }; S$ D) ^2 K) @MODULE_DESCRIPTION("Led platform driver");$ O" t; i0 L7 j3 V5 I, Q
MODULE_AUTHOR("Tronlong");0 T3 e3 w# l: ?  I+ x0 O
MODULE_LICENSE("GPL");% U- i/ r  o" g
8 m$ V7 c0 v0 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 09:27 , Processed in 0.043410 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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