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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 z( b6 o9 l) p: t( L
#include <linux/init.h>2 A( H8 r/ I) H: J
#include <linux/module.h>* @; o  g9 B* J3 m. c6 X1 f1 F
#include <linux/kernel.h>
' |! p, p) J1 o+ s# G8 c! }#include <linux/types.h>
( ~) v4 n4 B$ V& R#include <linux/gpio.h>
4 L( z( [" I: c#include <linux/leds.h>
3 a3 T% }. A2 @: Y$ _#include <linux/platform_device.h>+ V. D. l3 ^7 u; m8 w% t
: ?  Y  n" k# _7 W: V
#include <asm/mach-types.h>! |$ g9 N$ w! A/ B9 w& O
#include <asm/mach/arch.h># A7 q! S0 v0 ~" m& d
#include <mach/da8xx.h>
0 p8 Z$ X2 N7 K6 j#include <mach/mux.h>; c" s* F- s- O9 s8 C3 N! I4 T

( z( R" o! X. _( w2 b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); t6 L, ]: E2 N, w7 X" B5 f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) C4 E; z, U. q4 h7 m
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 l# o. }  M2 X1 o; i7 h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 X' M2 j& }& }8 a) x, p) e/ B) {+ K: f# R
/* assign the tl som board LED-GPIOs*/
' z! V* ?6 a9 v' J" F. Ustatic const short da850_evm_tl_user_led_pins[] = {1 `1 F" I* Y' z- J/ q
        /* These pins are definition at <mach/mux.h> file */1 c4 c& V. R* z" e6 |" l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 C* \' j5 `3 @0 A9 N
        -1
! W0 h3 w2 ?! R+ c9 s2 {};7 M0 q- y! t' v% i) j5 D2 Q" z
: a4 O" A3 Q5 y  T9 B; Z# N; F
static struct gpio_led da850_evm_tl_leds[] = {
. y/ s3 h) r: Q  y6 Y        {
) b: l$ [& t1 Z9 m3 s' M/ p7 E                .active_low = 0,
3 Y: w7 j- A$ V0 ?4 Z3 p                .gpio = DA850_USER_LED0,- B9 C, Y! {* M: T* M  h
                .name = "user_led0",
5 X  q+ Y: {: r* R3 \( n- \: s. e                .default_trigger = "default-on",) y4 G1 j; I5 `* @
        },
* g/ X; |1 O2 W0 L3 @; ~" N3 U/ K        {+ G3 E: H1 X! N% j
                .active_low = 0,
9 m- v  V( r( u- E0 T) {0 Y                .gpio = DA850_USER_LED1," t. X9 L+ T* M* j" b9 P4 i
                .name = "user_led1",
" {- Z% d, N! a. w' Z/ G! U( [                .default_trigger = "default-on",- n( ~1 m' \5 ?+ v0 y
        },# }3 O- G% p* i9 N- H3 w
        {. u" _8 j6 T4 e) D! W5 Y4 U4 \5 |! J
                .active_low = 0,) X$ U" J3 O  i# L; S2 Z; d
                .gpio = DA850_USER_LED2,* A) `* a9 c# U# S
                .name = "user_led2",
( ~; U+ P2 g. y. g9 L                .default_trigger = "default-on",
$ O! a+ R  ~/ N* b        },2 j  t- m4 h% W4 D$ a
        {8 k6 c* k! Z0 q0 Q/ x2 P, t" Q/ G; ^
                .active_low = 0,8 ~0 V$ o; @! F! h- N8 _  q
                .gpio = DA850_USER_LED3,! _+ W! T3 U" r# P
                .name = "user_led3",
* @) q/ u3 \9 O9 s5 C$ y. \                .default_trigger = "default-on",
% {3 a' z/ [: T* h6 X        },
1 S8 j- F) ]% U% k6 l};( I  d+ X* \5 y  }: ?9 ]& M
. |; E; b9 {  w' g  q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 [8 a9 h- Z; x$ A        .leds = da850_evm_tl_leds,
8 d, o5 B, `1 K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 J4 ~( ], p1 B" B};
: J" Y' s( I+ ]: z$ n( @2 [
: d: i8 C; h* G5 P1 Qstatic void led_dev_release(struct device *dev)5 P4 F2 E( @: q% A" l
{9 [/ b/ F5 L9 B  y2 w
};
) ]( J/ E# K: j' e, a' ~2 x4 D% _  ~1 g# o. J3 f
static struct platform_device da850_evm_tl_leds_device = {
4 E4 y/ E2 R( V/ |4 ?7 S, v        .name                = "leds-gpio",
4 v0 O6 ~5 U: `        .id                = 1,2 g$ ]" `6 I# i' w0 V4 P# J
        .dev = {, Z  s0 @7 g: T# n/ t! y" ?
                .platform_data = &da850_evm_tl_leds_pdata,3 k* {, U# Z. e& q3 z2 v
                .release = led_dev_release,6 R' V5 i& Z& g7 I) H& {* f# o
        }8 O, J6 R+ w, t
};- U4 ?" v% ]& N$ P
7 t* S2 y! x3 H; e- Z
static int __init led_platform_init(void)7 W6 K3 T& h8 w$ l2 Z) R
{# j5 y, k1 x7 r( |0 F# T
        int ret;5 E# v% E/ u: u1 r. B+ q0 c2 Q: X$ L$ ~
#if 0+ G" j( j, u7 {1 n+ B& E% ~$ p  U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ J9 ]( a; y. u* w( q        if (ret)
% d  T! ~, i" @6 e1 N+ M( z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", V. o, _5 W; M; R* H* G; I
                                "%d\n", ret);
& u% u5 V$ H8 k0 h#endif
/ l- J% B% n0 Y2 d* Y. |        ret = platform_device_register(&da850_evm_tl_leds_device);" e- }* j$ q3 _/ Y) A" l
        if (ret)2 |  n+ D0 E6 S" B
                pr_warning("Could not register som GPIO expander LEDS");6 S+ ]( L( L6 p4 J2 F) e
        else
& j4 w/ v  U- ]2 a                printk(KERN_INFO "LED register sucessful!\n");  @7 C( Z$ l  i" d! r/ d. f

: W: o! }- V  x( T* h; o' z$ X        return ret;
: x, A! A3 r1 n9 P}* j; ~/ i+ b5 x9 U+ A$ E

; S! M5 y3 `. s% @8 S8 Xstatic void __exit led_platform_exit(void)1 v% P. q: s7 w+ M7 q9 W
{8 I" L% d* M. J" i/ h
        platform_device_unregister(&da850_evm_tl_leds_device);
) F2 V" H8 l- }8 A1 Q& M$ a$ Y
1 c1 U& g& L2 i1 A) |  U        printk(KERN_INFO "LED unregister!\n");: _" V- _( e# B) I. x
}9 W# L5 {% C3 t

( |' _! `& A: ^6 Omodule_init(led_platform_init);
( G' P1 d+ n7 v8 Tmodule_exit(led_platform_exit);& g6 |7 @" P: x. s) a

9 C8 ]( d: _! T8 b% ~: B9 ]; R" JMODULE_DESCRIPTION("Led platform driver");
- E+ s9 ^* w' f: U( LMODULE_AUTHOR("Tronlong");
. ?- \3 }- J  ?1 v: JMODULE_LICENSE("GPL");
9 ?6 p0 I. G2 r% |! M+ P
# x9 h) ~+ z* l7 ~/ h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 17:28 , Processed in 0.042291 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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