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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# S6 h- a# d! \
#include <linux/init.h>
8 o0 h( B) o4 ^+ [* o; n8 B  u' z#include <linux/module.h>
3 `& B9 H( W+ Z5 u2 [' i  L5 |/ }#include <linux/kernel.h>
3 f. X0 S$ o" l4 r# y$ j( ^#include <linux/types.h>/ y& J) F+ [! V  B+ m0 k! a
#include <linux/gpio.h>
; }3 a" S- l3 k7 G" K+ c#include <linux/leds.h>( o6 ?9 @+ k2 ?( r" K0 w! X- l+ U
#include <linux/platform_device.h>
: ~7 U5 Z% k$ Q, X$ @2 W6 g6 F, G( [/ @/ `; h1 f$ m
#include <asm/mach-types.h>
2 y6 b# ?, }% W$ k2 G#include <asm/mach/arch.h>9 ]2 P/ q/ V9 ]
#include <mach/da8xx.h>
8 q& R* P/ |5 t- H! d1 a#include <mach/mux.h>) n' @/ s' L; \" z/ V- S
' ~! ?2 M. g* t/ r: f/ o% H( O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) s, G) y2 F  R/ r2 v1 w4 }+ s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- R0 V5 w6 K( o' E, f) W7 }7 Z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- N. G% |7 i; J7 h" _8 |# N
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 q' k0 D/ o2 q
; k5 J" B5 l; M( M/* assign the tl som board LED-GPIOs*/  P. M' g7 C+ o% p4 U1 |+ B; u
static const short da850_evm_tl_user_led_pins[] = {4 a1 q5 c* [% i" ^  ^
        /* These pins are definition at <mach/mux.h> file */0 e  Y& Q* N4 o1 h& f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' ^7 h* B/ h2 G0 Q: w
        -12 E1 s! ^! z* U1 O7 t+ F# o3 m
};6 v/ M& Q! ?2 C) N
& z: N" {: W5 U3 q' |
static struct gpio_led da850_evm_tl_leds[] = {$ k5 N: K- j' c- I
        {
4 o- _" f4 i/ A% h( n. G5 |5 ?                .active_low = 0,
: @" ~4 B+ O- y# p! z                .gpio = DA850_USER_LED0,
3 i, o" \1 C, u0 x: k/ u' u                .name = "user_led0"," s" N9 F* R/ t$ h$ Q1 c% ?
                .default_trigger = "default-on",% q. M+ n! C2 ~+ [( W- N! p3 }
        },
* _; s& G9 i7 q        {
3 f) |7 x; r0 T+ B5 k, w$ _4 x                .active_low = 0,: L( q; g1 v  z5 \7 e; v2 k
                .gpio = DA850_USER_LED1,( M. V5 O) I$ @# j
                .name = "user_led1",& W1 ]# a$ `$ ~. i
                .default_trigger = "default-on",4 ]: F' p3 I9 t9 j/ n8 Y) w( ]+ ?
        },. g$ E# I3 w) N* J4 D% g
        {/ M9 V' V7 P9 S& k" @: K/ J4 J. L
                .active_low = 0,9 f4 w: d! B  d- A) q  Q, P! j- V* z
                .gpio = DA850_USER_LED2,- T2 t8 N1 H& j8 L9 Y
                .name = "user_led2",
5 `: ?, k( B: Z& {  O                .default_trigger = "default-on",
; Y; Q6 z% Z. b7 [. G) ^7 m        },
: l% K) O9 J- n6 e+ U- R6 m        {* h8 V) Y2 \3 J' G( C
                .active_low = 0,
3 O+ }: u1 o$ u/ b, i                .gpio = DA850_USER_LED3,
5 X' C6 G9 A( b0 v0 h1 o, C                .name = "user_led3",
( p( x9 ?1 Y9 o4 r  {7 c4 x                .default_trigger = "default-on",
! Q+ U3 P, A- }3 T        },
' A3 m( C6 H1 x1 s/ l};
/ g6 k5 m% h5 `2 s2 A2 I6 B0 _; L8 O" v" g2 H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' Y+ u) ?0 A# S* C+ x5 Z6 Z
        .leds = da850_evm_tl_leds,$ V- y3 f, j" K( q; D' a3 S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' v+ N, B. a7 F7 o# X7 y  X, z/ U};2 `/ r  `: Q' e

* t; M5 ?) @0 U. A$ kstatic void led_dev_release(struct device *dev)3 X. g+ K6 ~' ~
{$ @/ c! l, v7 _" g: n
};4 i6 H7 o- ^( _) ?8 p1 I" r

; S" x. t8 Z* v# Cstatic struct platform_device da850_evm_tl_leds_device = {5 K9 B9 e' I2 `, H0 ]' Y: ]/ D# l
        .name                = "leds-gpio",% |8 Y3 f% z4 {. T4 F. V
        .id                = 1,
- v5 F3 [6 g  U0 K        .dev = {
+ q  w, a) e7 M                .platform_data = &da850_evm_tl_leds_pdata,
, l7 W% M% D0 Y  g! z                .release = led_dev_release,+ N$ @1 O1 Q1 \, f3 G$ ^( Z. Q" u% `
        }1 B3 D& {) d+ g5 S
};3 i3 ]; f0 ^& ~% X: q% k) B+ n
- z, s- S2 S2 H/ R+ M  h" d& e
static int __init led_platform_init(void)
, l9 k, W- O% z  H& E' p7 L7 y{
" T* a8 A6 b: o& j( e$ r        int ret;3 L. C, A. U* A" S3 R' b
#if 0
; ^! A, j( O( R3 u% G: y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" S8 Z# [$ J6 d) I8 F
        if (ret)
0 l3 Y1 T# Y$ w. |! P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 D5 K& f; h! s; e, E                                "%d\n", ret);) D' |' q" Q) t# F7 T2 }
#endif
8 j: K0 t5 q* i5 |, h' j! J1 E( ?3 @        ret = platform_device_register(&da850_evm_tl_leds_device);$ ^0 _' L: N4 V& W  N
        if (ret)  G) P# T) R  Z+ Z, X* |8 m. a
                pr_warning("Could not register som GPIO expander LEDS");4 r5 |6 b4 ?& R# k7 b
        else
( B6 a1 K9 R5 |6 g& l                printk(KERN_INFO "LED register sucessful!\n");
: B1 |/ c7 [( l; W8 D3 P3 T9 ?7 n3 l! ~1 X" x
        return ret;
8 ^1 V  w) }6 W2 x+ m}$ J2 M% N+ \! ~* K
% T3 R5 m4 l% ^
static void __exit led_platform_exit(void)
. u, p0 N- a# {) e{  M0 s3 f# N+ a
        platform_device_unregister(&da850_evm_tl_leds_device);0 l8 W% [* a" e! p! @6 w* t& a: ]

6 n' p0 Y! H- A% T7 d3 ^: p        printk(KERN_INFO "LED unregister!\n");
8 G+ Z! Q% k& |0 p: s}
- K4 A  b% B) ?, Y+ \% {3 ~
+ a' R4 d$ ^, T0 ]) q/ d' Ymodule_init(led_platform_init);! j1 l1 h$ e, O& m# T. O8 h, t
module_exit(led_platform_exit);
% \2 Y' W2 T5 N, r8 v' [& Y$ T9 h" e9 ]
MODULE_DESCRIPTION("Led platform driver");) F! o0 ~5 K4 ^* f+ _
MODULE_AUTHOR("Tronlong");9 L# f, Y. t7 C. D2 b2 X! A4 \  I
MODULE_LICENSE("GPL");" i- ~# l6 X3 Z: G4 X; g% g8 X' l# E

  b( h9 m2 l8 \/ O, M* ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 13:59 , Processed in 0.038982 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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