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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& o, n4 u2 g" Y. T2 [
#include <linux/init.h>
" o% E- ?, k9 d( T& j! ?#include <linux/module.h>' A% t& T& X- o0 {* v! P
#include <linux/kernel.h>7 K0 U- \: t7 ]" ?6 d
#include <linux/types.h>
% D" C9 J7 c" d( b1 l8 E#include <linux/gpio.h>& g8 x6 O# k4 z, C  \
#include <linux/leds.h>8 c) w4 Q2 e1 M2 d
#include <linux/platform_device.h>
* ]- \0 Z" U3 ^+ c$ [
7 l6 o8 X0 Q$ I& t#include <asm/mach-types.h>
- c5 k' [4 I1 Q#include <asm/mach/arch.h>! X9 s8 [# J& y9 d
#include <mach/da8xx.h>
  h- J1 l8 B" ?) O7 t#include <mach/mux.h>- f) S) V$ @" ?+ l& I
/ V6 U/ a+ H/ V( C# T3 P& x4 L3 L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* {& O' I$ O% l( W0 }( s
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 s6 N6 I0 r- |0 i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 n4 q& Q5 x; j4 l) E1 K0 O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 ]2 F' X6 O, W5 ]0 B% o4 q
4 ^. ^/ o) C8 n  g9 e; [
/* assign the tl som board LED-GPIOs*/
3 u9 R" s0 g, M" {- p; zstatic const short da850_evm_tl_user_led_pins[] = {
+ U: ?: k' i7 M/ f6 ^) ]+ m- d        /* These pins are definition at <mach/mux.h> file */
3 N& F& R& b1 h! p0 T+ F% o6 v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) ?6 T8 G0 f$ o; P  {: |, Z7 F" i
        -1
0 I: l5 L9 ~' \};) n: o, ?2 ?0 o3 g  F1 v
. J) e( V3 i$ G7 Z
static struct gpio_led da850_evm_tl_leds[] = {
8 [4 @& [7 d) I2 _6 Y) t        {
8 I/ n% D: _) ?; F9 f4 X3 M                .active_low = 0,
, W0 s1 k% o3 A                .gpio = DA850_USER_LED0,
" g- C6 w; H( q* m                .name = "user_led0",0 _# \8 [( g4 `( h+ N' S$ i! J5 d0 T
                .default_trigger = "default-on",
: M) o: W2 Y+ S. j9 F) r* f3 C) S        },% M7 u6 R* ^. e/ y' p' O
        {
3 {; ?  j/ R3 k% H- B                .active_low = 0,' W' l# s, @( _( J0 p3 P7 H# [
                .gpio = DA850_USER_LED1,
, V) _3 e2 L* `7 ]1 _                .name = "user_led1",
6 e& K, t. R: D% A                .default_trigger = "default-on",
% p# r# `& k- q) m        },+ I7 d# o# d( y$ `% f
        {
# i4 n; s; |1 U6 a4 T' U                .active_low = 0,9 ?  z9 A* n" M
                .gpio = DA850_USER_LED2,$ ]# }. _$ ^4 j6 i1 P
                .name = "user_led2",
' D8 N' i. U8 p5 K" b# f, B                .default_trigger = "default-on",3 V: _- J6 _- B: @' ?
        },  v: ]( ^; |1 l' @5 B% m& j
        {& v6 e, j7 M- O5 {# C; H  S6 l9 q4 t: v+ g
                .active_low = 0,& O6 j1 a1 y3 _1 a- e% ?/ H
                .gpio = DA850_USER_LED3,
& m+ b: ]% e4 x8 \8 m+ u. d: n4 Z                .name = "user_led3",
3 z' ?# q' \/ Q) j0 y. G2 G                .default_trigger = "default-on",
4 J0 r8 \  y! [        },+ j1 G0 E( }; V% R
};& U6 V% p1 e5 ~8 W0 p, T. Y6 q

7 P( Y" O$ v" {; K* m8 T- D0 gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 k  P: |* g  T+ P; ]; q        .leds = da850_evm_tl_leds,
: e' H+ y; p/ b/ N% j1 g% \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 i2 v2 K' y! C6 G" T. ]4 ]};
, }5 `% V+ R4 }( y% d( f1 o4 k+ t
8 K& @* l8 c6 S/ ustatic void led_dev_release(struct device *dev)
' u3 `1 J5 ]; }- k& `{; b0 {0 {1 Z% k1 }. |2 O2 \0 p3 b, _
};
8 ?: @  @; Q) d1 e9 u
) D. r& E- |' ?5 u- H5 Tstatic struct platform_device da850_evm_tl_leds_device = {0 |- i: d: k( @6 d- U% n' E5 Q
        .name                = "leds-gpio",3 ], U, m* w& c" q% X, @" n8 U
        .id                = 1,
  m# `/ L5 P3 k( L& H! ?0 D        .dev = {
" J6 x" `+ ^! {' ?$ `                .platform_data = &da850_evm_tl_leds_pdata,
  j& o& z6 y  h$ t8 {4 X" Z                .release = led_dev_release,
: a; n" k  C4 O& w        }4 R' K8 y/ t" F% U+ y
};, d0 A3 I/ u" D! C! M

+ {( U. h/ B4 k2 I+ `& ~static int __init led_platform_init(void)3 n% l. f- A3 P$ X
{
# ^; d% q( J* ?( a6 _        int ret;
$ i, ^' ]  Q! q#if 0  m7 W5 T1 E0 s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ R- \$ Z( E+ [4 i2 @( ^; w# V; S
        if (ret)
% o! _! B8 {: b, |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* I* `2 B" i! Z
                                "%d\n", ret);: A+ ]8 S/ @4 Z! [! D# e. |
#endif
. z8 z; W) j4 O! ?        ret = platform_device_register(&da850_evm_tl_leds_device);
, b' P) ?" T3 |0 v        if (ret)3 V) i3 G$ W( i* v6 q
                pr_warning("Could not register som GPIO expander LEDS");. M  T$ Q* `7 X, [7 j( h, A
        else, ^# u  b1 ~) ?) M
                printk(KERN_INFO "LED register sucessful!\n");
& ^) \+ x" N  e9 _
5 A5 G- _8 I0 H: k4 }9 J; X        return ret;4 X9 Y9 R! U7 x* p2 ]# t
}$ J6 D4 Q" Q) A4 v; ^4 D

  T  r* w, D3 p9 L: _# I; }5 f' ustatic void __exit led_platform_exit(void)
8 Z" \4 s7 l; P" x{6 F7 H) j3 H. d. O# ^/ K- Y
        platform_device_unregister(&da850_evm_tl_leds_device);! j5 B+ [! v- j4 `( m

# j2 r5 U2 n+ _* m" K# y        printk(KERN_INFO "LED unregister!\n");
& {1 D3 G' v# {3 _0 e' I9 G}
8 B9 K; X: }1 f# u! w3 e" l& f. f3 X! B
module_init(led_platform_init);
( h& P9 Q7 R. X4 Nmodule_exit(led_platform_exit);
. k- {; Q! G5 `( ~1 l# Y2 K3 I( s0 h% m7 y8 U, m
MODULE_DESCRIPTION("Led platform driver");
! L4 o8 g2 f6 J. D2 B% `+ g# }MODULE_AUTHOR("Tronlong");
; M: V/ G0 P! d$ ]4 X5 KMODULE_LICENSE("GPL");1 Q( {2 C* g% n( h7 R
: ^) c1 B$ }2 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-5 14:04 , Processed in 0.036543 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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