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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" G+ c, I! u5 ?: W5 T1 F# k
#include <linux/init.h>
9 H  X5 A) P& U! e; r! M; b; C$ H#include <linux/module.h>7 X& J3 e) K7 ?
#include <linux/kernel.h>8 e3 D; I7 _- X) I1 D2 L
#include <linux/types.h>: r/ `( S$ L5 C6 _" v
#include <linux/gpio.h>! u3 X( V  a$ o6 o: j; `: V
#include <linux/leds.h>% v2 e: f* {) K0 _' h0 n# ^
#include <linux/platform_device.h># s3 {5 k! M! N- }3 o- Q9 B6 Y2 C

! {/ U2 ?$ i  r! e5 b#include <asm/mach-types.h>, |- w. U. y* o
#include <asm/mach/arch.h>
0 Y5 J9 i: x3 g" k! E" G#include <mach/da8xx.h>4 R$ C9 m9 o* i0 l5 F
#include <mach/mux.h># I% I# N, l, W. z
9 F- k+ m' l4 f3 H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 T$ g& Z( R3 T8 k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" G  f' X( O9 B* q" ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 ?# y$ R' d# H& K, v/ i: f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ I6 M- p/ s  n; J. z1 q
- x* q& e. I4 X1 o1 r0 R+ m
/* assign the tl som board LED-GPIOs*/
! }- E" j$ C/ M$ ?+ Z2 jstatic const short da850_evm_tl_user_led_pins[] = {5 e+ y1 ?% u2 |& U
        /* These pins are definition at <mach/mux.h> file */3 d; S5 g" C8 K1 a. l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ h, @  y* C2 d' L        -1, N4 Y- a7 E) C1 f  D" T( R# }
};' l" ^; f; a8 A) y# m9 y% @$ C$ F& P, c
' m! b1 d) S5 t8 d2 ?
static struct gpio_led da850_evm_tl_leds[] = {
* ~* K6 |& j6 J5 W8 b* M- p4 ?0 l# v        {
7 h# D- G" r/ |% a/ z9 n2 f% O                .active_low = 0,
0 Q; X, ~& m6 ]6 X1 i8 }: f                .gpio = DA850_USER_LED0,
/ B8 i7 l! a; ?7 y( h                .name = "user_led0",
' W2 a' t- u& ~4 L' ~  ?! c+ b                .default_trigger = "default-on",
- q' ]7 }; ~7 W1 F' Z) x* H- B        },+ B: V- I- R+ }
        {9 M( p! ]; y, }8 ]
                .active_low = 0,) O, Q5 d; F& g7 A: q9 [! T0 ~
                .gpio = DA850_USER_LED1,; B  |0 r" D1 Z( e7 X9 V* F
                .name = "user_led1",
; b$ t5 a/ z# O                .default_trigger = "default-on",
2 y/ y5 S# _" @6 B. W        },# o2 A5 j( }! k$ c7 Z3 a0 `
        {1 Q& d' ~' \1 P! E
                .active_low = 0,* Y# D. c2 x8 u
                .gpio = DA850_USER_LED2,. i* F# q. a: v/ W/ i  e
                .name = "user_led2",
$ K1 T7 y* E; C0 J1 z                .default_trigger = "default-on",1 m! L* w. J. b* J  x
        },0 k& B% p" X: U; @# |! U6 N3 U7 _3 O. z+ j4 f
        {
2 X; H# F6 l7 f1 s                .active_low = 0,/ X1 a7 f) H- ^/ a3 F2 ?
                .gpio = DA850_USER_LED3,! r& a2 V$ L( Y) \- G) a
                .name = "user_led3",
9 b' v$ k! s/ }                .default_trigger = "default-on",- ]5 C: X* @' e% z( e* s0 p, T
        },
! b7 V5 n6 e2 N5 @5 A/ A};* |, s; P: K4 {) P( |

- ]: T9 \  r/ hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 u, Y: n  F$ C% ]2 v% j8 E; B, d$ F
        .leds = da850_evm_tl_leds,
8 ^% d# r' i( v+ {0 q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% A, _$ @3 |5 I5 u) w  U4 |
};$ ]& m( }' W. T3 U
% P( ?: d& b0 U/ y* O7 J
static void led_dev_release(struct device *dev)
2 S8 S( L# W9 x% p& ~9 y8 B% l5 m6 l{4 d# F5 M( N" W5 k4 j/ e
};
1 o) x0 n8 e- e3 _3 A
4 o1 Q: d6 Y) j1 ]static struct platform_device da850_evm_tl_leds_device = {( ]) L1 o( x" Z
        .name                = "leds-gpio",
! H& u* L$ r) E1 L5 M( \+ E$ Q9 M        .id                = 1,
7 H: G: A! U7 K        .dev = {; U  E. e% U7 e
                .platform_data = &da850_evm_tl_leds_pdata,, m$ v* C8 N9 T" l! }: S
                .release = led_dev_release,# e9 B9 h* _; O
        }/ R$ s% E8 E. Y
};2 Z: Q2 Z# g2 I& ^( q6 E! p) ]3 R
  [" M' v# G. G3 }
static int __init led_platform_init(void)7 L' Q4 j, U- [. C
{" x8 [4 X8 a" N' `9 U& ~+ o
        int ret;$ [$ v# d8 i4 _9 T5 [! d
#if 0' [( I( U; i# z% f6 A- P& b- D  S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" @0 D2 b3 F* w8 T        if (ret)
1 t- M2 M3 {! Z+ O' G) |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 z5 {' ^" g% E! a2 N. q  X( ^
                                "%d\n", ret);+ ^; D1 W  G& c9 p  F3 Z: G7 J
#endif$ ]# i# I2 G3 y
        ret = platform_device_register(&da850_evm_tl_leds_device);
( l9 R* s+ J3 N) E$ h7 r2 A4 U# x        if (ret)
( ]' N# e( [' K6 Y6 y( B6 U' H                pr_warning("Could not register som GPIO expander LEDS");
" g! B& T% I  _, z  i; n        else
& J8 b" b: N4 h- k& U1 G' O& W                printk(KERN_INFO "LED register sucessful!\n");
, _  O, P% B+ M5 p( b
! J5 f7 ]. p/ c6 r# l3 V) W        return ret;% _5 g* y1 b: c$ e5 a! Q
}
: y5 N6 A' o# e& j: \& B( e1 @6 `7 v, M) m. z0 @) V
static void __exit led_platform_exit(void): K, n% N, D  S  P
{( f+ m3 u# l* F6 C; H. {
        platform_device_unregister(&da850_evm_tl_leds_device);3 e# J% I7 q/ k1 j- [9 Q8 U

" S$ j1 X) h9 O2 @9 \        printk(KERN_INFO "LED unregister!\n");
2 n' t+ s& b5 v) Z* P  s& r}
2 G5 l% i, F: i& `/ G
7 A' _& u9 Q. I" l9 umodule_init(led_platform_init);
1 K$ i% W2 z0 h3 G( u- dmodule_exit(led_platform_exit);
' Z; Y$ g3 @8 ~& g- x" ]  i( E7 ]2 W
MODULE_DESCRIPTION("Led platform driver");
, w: p- u' z  |1 _/ e3 `5 }' `MODULE_AUTHOR("Tronlong");
/ d1 ?3 F! G& ~; p  A% \  W( rMODULE_LICENSE("GPL");; I# z9 Z+ d7 p
) q$ S+ C$ C  c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 05:32 , Processed in 0.040187 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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