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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 t. c' A  h- {8 b% a" j
#include <linux/init.h>- p* p* p$ |% Z/ h
#include <linux/module.h>5 b8 _9 S) K9 e
#include <linux/kernel.h>
. ?2 K: F* Y' z9 r. d#include <linux/types.h>
# f0 r1 d- O( t8 w8 c#include <linux/gpio.h>) C1 y- Q5 J7 H  `  w
#include <linux/leds.h>( `+ e% ]1 ~# o/ m8 I3 s& c
#include <linux/platform_device.h>
7 M/ a' o4 n8 Q8 o
/ C4 ]6 o4 \! k" a9 v6 i6 h9 `#include <asm/mach-types.h>% z( J% t5 R! N' _+ F" w
#include <asm/mach/arch.h>) S3 X: L/ U) ?$ H. m
#include <mach/da8xx.h>
( W' U) z" z0 v& E#include <mach/mux.h>
# I, K" r9 o% m% D5 c( m% c
1 O- t6 Z  e8 J# y) w2 }" w0 K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- V0 p% {: S8 o5 }6 t" `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, O8 T) R# m# I7 k' `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 O! o. {& ^4 g% u6 w( S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: |4 T) g. r( p' x: a" r9 u1 s$ @( o/ K7 `- X6 b
/* assign the tl som board LED-GPIOs*/# z! j& l$ K4 B# U2 q8 Y
static const short da850_evm_tl_user_led_pins[] = {1 @/ v/ N& r" |, D3 Z
        /* These pins are definition at <mach/mux.h> file */
" j" ^; ]3 P: i1 H" I7 l1 Q* v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ J8 S9 Q7 i4 [3 k0 p  e
        -1
* V5 X3 G: |1 F7 L. U' d$ i$ B};
* E, [$ q& A' J5 z! Z2 `9 ]4 H
& u; d4 M1 ~/ R: B6 R& astatic struct gpio_led da850_evm_tl_leds[] = {' P2 q& _" e& z, P
        {
! g" [/ P3 v5 H0 @, v2 N! S                .active_low = 0,
, g  j/ m6 n4 d1 ?$ F                .gpio = DA850_USER_LED0,4 u/ @( z& C  T" ]4 `8 W- U% U0 [% m
                .name = "user_led0",
$ {( m, R8 p2 j2 Y5 k* ^2 \  ?% i                .default_trigger = "default-on",# E7 L9 F! e: v" G
        },, [! W  D& f7 Q% K- a8 @
        {2 \7 U3 G2 f$ _/ X+ k, p
                .active_low = 0,, D7 y, P$ P9 Z; T& i9 @3 d' }# z
                .gpio = DA850_USER_LED1,
! G1 f+ h, |# J, J: @5 B                .name = "user_led1",
' Q: Z; N# t# U4 o) Q                .default_trigger = "default-on",
: @7 ?4 z) K; U8 b& `" o+ g5 i* K, _        },6 u/ F& A# V( z* T+ _
        {% t1 z5 i: P* K, n4 R! Q4 T6 \
                .active_low = 0,
2 F8 U8 ]( \% _3 \- v3 O7 D- ]                .gpio = DA850_USER_LED2,3 F& _' Q4 k* ^- v. }; f
                .name = "user_led2",
$ T9 O2 h: @! j7 t% s* w                .default_trigger = "default-on",
" O, Z) Y1 q0 X5 p        },
6 Q2 J( r! u# A" m5 o        {
" y9 O' P/ D; l                .active_low = 0,: ?6 `1 d7 z  K* r( |) n5 w5 Y
                .gpio = DA850_USER_LED3,
" K4 N2 P0 e9 z* |                .name = "user_led3",
5 i: A. [2 Z/ u4 A5 ^' ^9 m- F                .default_trigger = "default-on",3 g- c$ s  X9 P% F. R
        },
- H" L9 v$ S/ |4 a4 B  U};
- w0 Q' {/ U+ G! S: s6 r2 R  p! A3 ], ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 F1 f: G; ]; x, ~0 ?        .leds = da850_evm_tl_leds,
$ e( H+ T( C& t) B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ D9 L. X) K& y& h9 _/ S& I};
; r; q$ B' u3 K7 J5 O# P' \3 Q
) t' z3 {5 }2 W6 Vstatic void led_dev_release(struct device *dev)6 @% @  M8 Y5 [* Z- N  \( q
{2 `9 K) [& ?" O" M6 C4 {9 h
};* `# i0 H4 F6 {% E5 a7 \
. e1 Z& z- H# E  P/ W: F
static struct platform_device da850_evm_tl_leds_device = {
! P+ {9 t1 I2 d+ o  I        .name                = "leds-gpio",
& x' g" U% p4 ]# T5 e3 F        .id                = 1,
( E+ k% n3 C, j+ v- O        .dev = {
! u( V9 \/ J  A$ u( g- i                .platform_data = &da850_evm_tl_leds_pdata,/ s3 S! C  L" E- c
                .release = led_dev_release,
; j% M+ D' `% S8 q$ p! o        }
' `* P8 J7 s. M+ C# p5 N! I" y};
7 v5 w) L0 R" f' u( L
& X1 k4 N6 t$ Y# e$ ^9 [6 qstatic int __init led_platform_init(void)
0 l; e2 ]. \8 {8 _" z{
/ ~  n- z! G* V8 g        int ret;+ n2 w( w4 J/ ?+ y
#if 0$ f+ l7 M1 a# C6 u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! A6 x$ E8 y; T3 v        if (ret)
! j8 A, i7 s' b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! `" i+ B) f: @9 u8 y# x/ U
                                "%d\n", ret);
- v/ a: D- Q) X* ]4 t. g#endif
. R& F. r' B6 k  h4 L, P        ret = platform_device_register(&da850_evm_tl_leds_device);3 {0 J/ Z1 f. Z3 \6 _& Q
        if (ret)
) T* `1 L9 L9 S$ R( p! [                pr_warning("Could not register som GPIO expander LEDS");
1 H4 H; d& Y( q5 Z8 q- S        else
1 E, c6 O9 w% m. C7 [" `$ E                printk(KERN_INFO "LED register sucessful!\n");8 k+ D' A7 D) u) V+ {

* Z2 C0 C; M$ K+ M0 g* h0 a        return ret;
# [1 u8 z( e9 S}* Y- g" ?9 o; c( Z+ O
1 P9 [  M2 G; v* y: t; e" z+ c" V
static void __exit led_platform_exit(void)
; O; e4 \4 x. U{! [& m! |! |; B+ n  T# E- ?
        platform_device_unregister(&da850_evm_tl_leds_device);
* _  e$ \$ U: @9 d' F  N, ]5 ]* r. w9 P8 C* J, \
        printk(KERN_INFO "LED unregister!\n");
/ R( i1 p4 t# }}5 r+ U) u* ?- s& u

  W2 `0 J# g4 a# P% Imodule_init(led_platform_init);# T; P- U- @- f( J7 T  P
module_exit(led_platform_exit);
" n5 g5 Q5 `# W8 r. R
% I  G1 D3 l. u, \/ J& n4 i" TMODULE_DESCRIPTION("Led platform driver");; ^- M, K+ C, K! `- m! ^
MODULE_AUTHOR("Tronlong");5 m( }9 G( n1 ]% L6 I3 D
MODULE_LICENSE("GPL");
0 R% @/ X# C' I7 t! ^5 A+ j2 c" H- x
1 N. u6 T: F. C: z8 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 07:56 , Processed in 0.038080 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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