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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 w4 a- w+ g2 i" G- f$ w; K
#include <linux/init.h>
- I. B% J" m4 {- G#include <linux/module.h>+ O4 N4 i# v7 ^4 N  _' y# ]
#include <linux/kernel.h>5 E, `* e* X# P
#include <linux/types.h>
) W0 F0 H% b$ X& ^& I; s#include <linux/gpio.h>( H2 c3 a7 c1 p# `1 w6 w9 U% A8 Z# y
#include <linux/leds.h>- O6 m+ I1 H  U1 Y$ Z: y
#include <linux/platform_device.h>
6 A2 p; n& Q1 J  T! x; X% ~' a9 b
#include <asm/mach-types.h>8 d1 T0 p- N; o
#include <asm/mach/arch.h>
) [4 l, @- m( D% z# R! e* C: q#include <mach/da8xx.h>
0 V, g& c1 [2 ?#include <mach/mux.h>
. P$ k& k9 o* g" y* W! R' P$ _' P( T; d- T1 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; I0 b9 D; H: \# D3 h5 a% [: h1 t#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). ?+ n& N% o* m/ W8 v. N2 f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 S0 {. R$ Q& p& q8 A* d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 h2 W9 q, J4 z) A" A) M4 l1 }( x

0 O8 c/ F; g$ N: v/* assign the tl som board LED-GPIOs*/
, p' |' X! ^4 P! g$ V( `# a& H7 h) Cstatic const short da850_evm_tl_user_led_pins[] = {( ?1 W" k* [( v) G
        /* These pins are definition at <mach/mux.h> file */
* k4 ^* a; [) S( s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' u# W) y+ o! `; `6 w; ?        -1# _$ O' u. z0 I# E! b9 _' I1 A7 J
};
) }8 E! \8 }7 p0 Q( ~+ |$ Q
* }% h1 F1 M/ a% [: `static struct gpio_led da850_evm_tl_leds[] = {0 n/ h6 j' s' i5 }+ d9 t1 {
        {
  V$ S0 Q5 s5 t                .active_low = 0,* A: g. j! F) J4 q& f
                .gpio = DA850_USER_LED0,: f- i8 B. ]( B' Z: {2 T( I8 n
                .name = "user_led0",; v0 `0 n$ q! \6 e! c( P
                .default_trigger = "default-on",/ K. B( E) ?5 [- h9 A
        },  I; F7 |4 `3 u# P
        {
8 a/ K, n" ^, {7 I' A" `% n                .active_low = 0,
/ z( r! G8 @  C% `" t                .gpio = DA850_USER_LED1,
$ d; d6 B; U' ]                .name = "user_led1",: j6 S& _7 t. I: J" ^' g  x2 Q2 ?
                .default_trigger = "default-on",
! j/ A2 ], J! d5 i        },
( ~) o$ u  k7 l1 _4 w4 Z8 T        {- m3 f6 k. _% s* E, @( v
                .active_low = 0,
' i2 z9 x; X  p! w# H& G                .gpio = DA850_USER_LED2,1 D" a# K. J! a: \. L' [
                .name = "user_led2",
. x0 w; R' y* n2 D  r                .default_trigger = "default-on",5 |% F3 C* p- @: Y9 B6 _! R( J- ^
        },
7 Q6 ^% j! c; e0 E" M! J+ j5 A  N        {4 a7 L+ ?3 N0 [- L7 Z! R" M2 }- h1 T8 k; G" ?
                .active_low = 0,
4 a% [& R# @' ?7 X+ y+ P                .gpio = DA850_USER_LED3,! A0 @+ E8 W+ t8 N* N" o1 f4 J0 {
                .name = "user_led3",% x1 _+ P/ X# [; \/ |6 `: n8 f
                .default_trigger = "default-on",7 e4 H( |! N: M# o
        },  L# y, g' K4 s% V: u
};
# o! O  Q" ~( H+ |6 X, @& }/ [
$ L) a; b0 H  z5 v. I3 n9 Q; qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' ]9 [$ w  ?+ q  C
        .leds = da850_evm_tl_leds,: \( X+ t- P* ~3 |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 Z: i5 S4 Y7 x0 c/ Z: e3 L  _
};# K; X  B/ c9 r6 L, L% ^2 n8 {
% a) _0 r, m6 z# K- T7 o3 L
static void led_dev_release(struct device *dev)+ x( Q$ q" g; s2 C0 A+ h
{' b# ~& y- f* m& y( |! i; D
};6 r, `9 {8 A' n9 v1 @# X

6 x% Z4 f, i9 Tstatic struct platform_device da850_evm_tl_leds_device = {7 o2 j- |+ \- _& g# K9 p! R) z
        .name                = "leds-gpio",
* n5 R" \* t/ p8 V& w' E        .id                = 1,2 m8 H0 F! o' Z$ r. k
        .dev = {# ]0 V# [. r* f& r. f. w) F1 ^) m
                .platform_data = &da850_evm_tl_leds_pdata,3 z- d, M- R/ L4 g) x/ Q
                .release = led_dev_release,
' p+ c9 Q2 x" O1 Y, Z& o  S9 |        }
4 X, x( F, f- d8 x% H2 `8 {$ g};! `+ ]* }) p9 c( W3 f6 t  z

, K: \* s, A0 j1 K' {" nstatic int __init led_platform_init(void)
4 ]0 m' ?" N2 o5 |{
/ W7 n1 y% }& k6 q: Y        int ret;
+ B2 Q1 Q" M6 p3 m#if 0
: v7 R; b+ C* I        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 ~/ L) E. J$ r; H( L6 L        if (ret)
" o$ r$ ]. B9 ?$ t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 F# |$ o8 v1 F9 G                                "%d\n", ret);  W6 ~6 a, c, |
#endif
+ W# Q, I! f: E( L4 J2 P2 j        ret = platform_device_register(&da850_evm_tl_leds_device);
5 I) S0 i$ P; g: e8 ^+ `        if (ret)3 f" ?. o% B- A
                pr_warning("Could not register som GPIO expander LEDS");
/ \- P$ @6 I' {: v        else& w  o9 O$ f. E5 K1 a8 y) M
                printk(KERN_INFO "LED register sucessful!\n");
$ X! G7 s5 X& k* o
7 m  x0 v, I: Q) W$ G- R% P# Y! T        return ret;
# V4 l  N  b% J9 G6 t- o}5 i% ^( U) O; @" R4 n: `$ K+ h

1 `. H: D7 C6 C$ |6 k# fstatic void __exit led_platform_exit(void)4 e  X# I+ U% V9 Y$ q
{
/ G; D1 u5 O: ?  g9 L; }        platform_device_unregister(&da850_evm_tl_leds_device);
0 R! N  ~/ _  U. K% d% r
# l- _  ?1 x  P. a2 `        printk(KERN_INFO "LED unregister!\n");
1 R+ h8 H6 G0 a% X}
+ X, C7 x& V1 r4 @) |0 y; O+ V( T) @  L
module_init(led_platform_init);/ @8 R7 N  W5 J. c
module_exit(led_platform_exit);& t( R, B; P! r+ O0 `
2 m, n( o. Y/ {4 @
MODULE_DESCRIPTION("Led platform driver");
. U/ ]8 k! H4 q# |& SMODULE_AUTHOR("Tronlong");
1 P9 X  p4 z* o# Z3 [MODULE_LICENSE("GPL");, ^4 c4 `/ L- J3 W' d0 `( h* f5 p' ]
( A1 |. n6 e: j; R, [: s% j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-12 16:51 , Processed in 0.037251 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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