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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, v% u) H! p9 ]( r
#include <linux/init.h>
) ?* |3 \, c5 b9 A- o#include <linux/module.h>
+ v8 D" {! ]! n8 w#include <linux/kernel.h>
. O# a# v6 q* h* E' I+ j#include <linux/types.h>3 n9 F$ f: _: |; T
#include <linux/gpio.h>3 i6 I0 t4 y: L( k! [
#include <linux/leds.h>
0 O: B9 T. G, R#include <linux/platform_device.h>& Y1 V. E) ^( x3 ?" ], U
2 Y7 K( `/ a$ X0 h, A
#include <asm/mach-types.h>
1 @( M2 h0 F% x* o! Q: b& \#include <asm/mach/arch.h>1 g+ I8 ~6 i2 s  M
#include <mach/da8xx.h>
3 `7 X! u- ~, I& s7 ^& [#include <mach/mux.h>
% {2 \& ?8 z) P" o- j# {' y0 {. `& O0 q' M% r$ B8 L. n! m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: F  Q% n7 ^3 h$ R0 x1 I  U/ K# X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ p' g- @5 V* p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- f! U$ N$ p/ [$ O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ o* s( [& k* m3 i, _! b

7 ?3 \% I9 a! \% J/* assign the tl som board LED-GPIOs*/. N3 I/ U. Q4 W1 }  V
static const short da850_evm_tl_user_led_pins[] = {0 }9 R# o& n* |3 X0 X3 D
        /* These pins are definition at <mach/mux.h> file */  D. X; P5 C( X$ G3 w$ W
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ A6 R* j3 T' a  r& t        -1
& G8 X! @5 D* \0 \0 ~};7 D1 [$ [6 V! t& R
$ U! {& p7 n  C, R( J3 C" O3 d
static struct gpio_led da850_evm_tl_leds[] = {& J* B5 C( y( ~1 z. q; _
        {
& }& J* M* U5 t! W0 u1 v                .active_low = 0,3 Y; g" e$ c# g% E: P3 U
                .gpio = DA850_USER_LED0,& e7 P* X# j1 J
                .name = "user_led0",) ]) k8 T7 L7 M1 Q
                .default_trigger = "default-on",' o0 b. T, P8 Y5 y$ R8 ^
        },
( V4 z4 M) C( b# r        {
, \8 g7 c8 R, A! r                .active_low = 0,; f8 p  K3 c6 p) h
                .gpio = DA850_USER_LED1,+ q2 g6 }$ C6 S# i: m1 q
                .name = "user_led1",
& m0 ^- G! w4 V! q! h, R6 Y                .default_trigger = "default-on",8 z) K" i& u# K6 L5 h1 D
        },
4 A6 e- ~" k5 ]  o/ Q* j        {+ W  Z+ Y) J& S, R, r& m) l; o
                .active_low = 0,( r/ ~, V" a( k+ q0 B3 e/ A; f
                .gpio = DA850_USER_LED2,; Q' B2 x# [. }" A
                .name = "user_led2",  }% e) P# Q  Q1 {$ n8 ]
                .default_trigger = "default-on",
6 {# Z& h7 N5 T% i9 e  u        },
  s6 |4 E9 g$ F* U+ t) P        {
( {. s( e' w& k9 }* H                .active_low = 0,
) l. k9 d% r" P) W: S$ k- E$ Q                .gpio = DA850_USER_LED3,
5 t( g# e; C# Z                .name = "user_led3",' |, ?$ I" z6 Y: ^  P
                .default_trigger = "default-on",
/ _1 h  y" p5 Y        },
* R5 K- S# N, Y5 M% a};
8 F7 V6 T# ~; |. {0 E. F/ ]2 y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. V) a, i' V( M. |/ R        .leds = da850_evm_tl_leds," r8 s' H7 f- a5 z. B: T* ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, U. o4 `7 I( |3 g" C6 y
};
* f3 h6 m  u! g6 `
/ B+ o& V- q# |5 u% g: G* n: j( Qstatic void led_dev_release(struct device *dev). K! L1 w3 p9 T) p) m
{
% e! J$ p/ V% O! ~7 C1 N};9 K* M( l" k- A; G

( g/ N4 _) U% b- K6 a" Bstatic struct platform_device da850_evm_tl_leds_device = {
, l+ d- N1 K: ?1 |; Y        .name                = "leds-gpio",
2 y& e8 \% G6 `0 w8 F  Y: Y        .id                = 1,4 `3 c. p, F  }6 Y
        .dev = {
/ J2 `% V3 L  U9 g$ q6 [                .platform_data = &da850_evm_tl_leds_pdata,/ \% d* Z8 h; n( v7 a- m# @
                .release = led_dev_release,
1 U% L2 L1 i2 F* O) Z9 Y        }
( M7 g  }; y$ w9 M% i; |, }};
2 m8 W8 \( ]: d" E# y0 j
4 u2 U$ ^7 @# h- _9 e  P" Ostatic int __init led_platform_init(void)9 x* \8 F/ g4 n% X6 }) U7 x
{
. q1 ~) v+ M: m, B8 }! _4 U        int ret;
! V9 t8 e6 w: G8 X#if 0
+ X* J6 d# j5 T0 a' r- ~5 D4 g4 M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! M! Z" m  S" O% @/ K) Z        if (ret)8 ^1 @3 `1 @6 D% x5 D: T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 I( @" j" Q/ a' y/ o& K                                "%d\n", ret);
' r/ ]) i( e+ G#endif9 M# J8 Q0 @1 c/ B
        ret = platform_device_register(&da850_evm_tl_leds_device);; A6 d$ s5 M0 \" U: `
        if (ret)
. ~8 G# a5 [' j; d, I# y                pr_warning("Could not register som GPIO expander LEDS");
" b- `+ u6 L) M7 g, E4 b0 s( c        else
  t3 K* u' D7 p; m7 p" \                printk(KERN_INFO "LED register sucessful!\n");
, h9 {* }' Q# Z* o
" }6 O% }$ l6 o2 S        return ret;/ [5 c( }9 |& l# L# n/ Q
}- o: K1 t% n. i: q) Z: Y7 i

, q$ c8 _6 N9 k0 f5 Pstatic void __exit led_platform_exit(void)
3 K: x# x+ U8 H' N2 Q{
$ h7 e) V$ `) L4 j& P        platform_device_unregister(&da850_evm_tl_leds_device);- i; a1 f  j* @* @" U4 ^

7 P  c3 k* |# u3 ?% M$ ?5 U7 Q        printk(KERN_INFO "LED unregister!\n");+ [0 Z7 _: u, R7 L0 Y8 R5 C
}
) v5 J* R4 @. \5 I- m7 Q: B. Z5 D/ s$ p# q1 U3 r3 N. @2 h% D
module_init(led_platform_init);5 U- [! a; p% W1 E- Q5 @, Z
module_exit(led_platform_exit);
; ^. k4 S+ o8 n! B# k2 q0 d# Y' S1 c* h0 j2 k
MODULE_DESCRIPTION("Led platform driver");! D) ], L! N- K$ O# v
MODULE_AUTHOR("Tronlong");
7 J1 ?  c: _1 U, m9 J* j* BMODULE_LICENSE("GPL");- V' d: {+ X: ~/ M

" c* f7 b( ~$ i3 z  H2 g- o9 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 07:36 , Processed in 0.038898 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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