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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& C& y7 s' [0 _
#include <linux/init.h>
0 z6 h, `, E' q- h6 o+ \#include <linux/module.h>; G0 m# @7 `2 P3 d* m4 E# s/ c- s  W
#include <linux/kernel.h>, a" X3 c3 y# w' V4 g
#include <linux/types.h>
; x% _- q& E' M/ j#include <linux/gpio.h>
" V( q. v6 j; l: y, ^#include <linux/leds.h>
- `: E! ?0 l/ x/ r# R# c#include <linux/platform_device.h>3 p1 R: w# n6 O% [. X& b, [
9 N- B# P8 f+ G* u
#include <asm/mach-types.h>; o6 |5 ~, o, y" u
#include <asm/mach/arch.h>
4 r3 R. K; v! N; r#include <mach/da8xx.h>- q( g" O/ L5 A  R
#include <mach/mux.h>
3 I0 b2 F* x. _- ~' V! s+ D+ C6 t9 z7 n0 j' P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ y0 W0 F& u% U3 P* M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 L% x: y8 B8 Y% j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" d3 z. j1 t1 W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  |/ T, e. C" H4 O  O8 w0 B0 @* v
& \, C8 E5 T! \; A
/* assign the tl som board LED-GPIOs*/
6 L/ |) M! h/ b0 Wstatic const short da850_evm_tl_user_led_pins[] = {& T1 H3 q: |' a  |
        /* These pins are definition at <mach/mux.h> file */
9 k2 T0 ~" \/ B7 `% D( f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 s6 @" p. U* b* _* u+ [" _- @
        -1
% V7 T4 T, L5 {+ v( N6 t/ t};
2 R: t/ `7 H$ u+ O1 q2 x
( M! }; N6 d! X3 W" Pstatic struct gpio_led da850_evm_tl_leds[] = {
, d" A" T% U  m9 A/ X3 @$ }7 C9 ^( j2 H        {7 v, H6 U/ h5 f. g1 J. r/ W
                .active_low = 0,
9 D: b. F) I3 g  J, ^- ~% j. l. U4 `                .gpio = DA850_USER_LED0,4 ]+ ^. ^$ X' A. {$ r5 b  T4 S  k
                .name = "user_led0",
# U  Z( i; j" Y% |& _$ C1 ]                .default_trigger = "default-on",$ k! M+ h. o1 ^& |; K) \/ Q
        },0 C/ k; E7 B+ V7 {
        {
& l6 L& S. X- i% D% |                .active_low = 0,8 A' o; B$ s' ^0 G! b0 P3 ]4 ^! g
                .gpio = DA850_USER_LED1,
' r$ Y0 K+ j$ J' Z$ j                .name = "user_led1",
: a% Q2 s  d0 Z# H# R9 |                .default_trigger = "default-on",2 L- q. Q! Y9 @1 u: E' ~1 t) T
        },
6 H. i: {  u3 e8 U/ X. f9 R        {7 R# J9 C2 U- Z' |) e. ^
                .active_low = 0,7 p6 v0 W0 c5 f, i( A
                .gpio = DA850_USER_LED2,, Q* }2 i" e, w/ m- b( R/ t
                .name = "user_led2",
1 I- c9 d2 K& n) v8 w6 E/ v* f! [                .default_trigger = "default-on",
( X  B7 v9 D5 |" r# m" G        },
6 k  a- Z" [1 v2 |" m$ M        {
9 M- v3 g. d9 {" \4 r0 o2 \                .active_low = 0,
1 Z; L( v% l6 j# d                .gpio = DA850_USER_LED3,$ L# a( K+ E" l
                .name = "user_led3",
1 R+ V( o2 u2 _/ X2 F& S3 W( _/ J                .default_trigger = "default-on",9 h$ \7 t; J8 J4 L
        },9 O7 H% K( C% O( }# |' s* O
};& Q: ]! G2 x  n
* j7 Q. m) X' Q/ `! F+ @' S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 J8 o) m: s! E
        .leds = da850_evm_tl_leds,
+ v+ I) F4 _: a. X* L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! O& G. x4 z4 x- o0 l0 S) N
};9 X) g0 [9 C7 B) M/ k

; f: v* t( X4 k$ B0 `static void led_dev_release(struct device *dev)5 d3 |/ A* I2 ^- b5 Z1 z
{
, ]* }2 X+ K& Z5 n) F2 D- A};3 m7 |  ^: E% p; O) d" w5 V
+ o) e8 [2 a  {( m! _
static struct platform_device da850_evm_tl_leds_device = {
4 c# c+ I. C) y, h- Z& |        .name                = "leds-gpio",
. K  B. Q) x# \* t" z+ E        .id                = 1,' u4 Q# V8 J% l& Q- e0 K! B
        .dev = {
& H: r  N& h$ B- Z* ]2 f6 y; v                .platform_data = &da850_evm_tl_leds_pdata,
7 w+ [8 e4 u  t8 I                .release = led_dev_release,* R( L2 {: Y  n' J8 [- @
        }
' u4 P" ^0 K/ ]% F};
6 b, R$ g$ h1 r! Y# s" u" G
) f5 c& u/ F, z5 _% }static int __init led_platform_init(void)
  A: L6 P  _: w: L* N* C{9 r8 Y% c* ~8 p4 |2 c! }
        int ret;
: P4 c6 ?7 B  S8 i#if 0
8 M  X/ e6 L- N( ]: U$ j: {5 S- a+ G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ a' u3 K, \2 o0 v
        if (ret)4 i- M5 Z1 [) f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( W* T5 f$ X, C& E$ A4 I4 g3 c; t
                                "%d\n", ret);
7 F9 @+ J/ q2 ?#endif. F( U. E4 g# u+ g
        ret = platform_device_register(&da850_evm_tl_leds_device);5 f! G1 C, L# `  v/ U
        if (ret)7 c9 H1 Q4 K8 D) q" s
                pr_warning("Could not register som GPIO expander LEDS");
$ J: q' I5 J/ s4 ~  ]        else
7 l5 l8 x2 r, z' |/ D" c5 ^                printk(KERN_INFO "LED register sucessful!\n");3 {( ?  v& s. |5 ~) B) p* g3 ]  D+ N
9 ^4 K6 `, v! J) C3 }
        return ret;7 a. o6 e* ~9 M% K( a# b
}. [% i: @5 B6 r0 Q2 @$ q* O: J
5 D/ M% n1 s+ N" I
static void __exit led_platform_exit(void)
) r' X# [5 y& Q0 i1 A9 r2 }{& G8 g; m$ x3 m- e7 X/ W" p9 ^
        platform_device_unregister(&da850_evm_tl_leds_device);
6 t- H! U. |, D: P5 W4 e( c! q8 \0 A/ [3 g! h" z, m. A
        printk(KERN_INFO "LED unregister!\n");2 Z. G* H2 T/ Q! v9 A2 u/ b& C
}
9 W" l2 d& |1 A# e* l8 [, L, Q
module_init(led_platform_init);& t- ^) s7 ^; T7 j
module_exit(led_platform_exit);
  R) ~( A4 D4 M$ j3 C! Q0 N% H1 s7 |
MODULE_DESCRIPTION("Led platform driver");4 ~7 Z) e, D" X+ [; h6 \
MODULE_AUTHOR("Tronlong");9 I# z: k- c& G; g, x  Y
MODULE_LICENSE("GPL");8 a' ~/ _8 p/ c( N# ]+ t
, k8 {0 t2 a7 o" k6 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 19:55 , Processed in 0.039664 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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