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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: N( N! V8 `/ f0 D& W$ X#include <linux/init.h>) X4 |# U' p6 I0 f, ^. l$ |
#include <linux/module.h>
8 t; |- q7 m; z5 o7 t2 ]  f#include <linux/kernel.h>5 l1 o3 O5 v7 I2 t/ q
#include <linux/types.h>5 B& e' [% d0 T4 w
#include <linux/gpio.h>+ i* L: T# O1 k, I; k1 ^0 R6 E; U
#include <linux/leds.h>- Y2 {4 N! J. C  Z$ M0 E8 X9 ~
#include <linux/platform_device.h>
! p" K) t3 e) \! |
3 G3 p1 G6 j1 F2 j$ F#include <asm/mach-types.h>
/ H  D4 o  ~- Y# ^+ `8 V/ d0 \: I, a) }#include <asm/mach/arch.h>
. a9 }# v" |/ V- H) a#include <mach/da8xx.h>
; H# ^1 I2 ^; c7 T" q' {# K; A#include <mach/mux.h>) r# Q" V" Y# b  m# Z

: j8 Q3 I% t  H" x( R. v3 q; |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; k5 w1 _) z! f. Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 B0 l9 p/ O- ]& [8 d1 u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 a* e+ A4 ^' o
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 ?- I+ ?3 }$ R- E( h
  j0 U7 \, ]% ?% h, i4 u6 N
/* assign the tl som board LED-GPIOs*/
3 m- l5 b! z7 q4 J8 U* y* _static const short da850_evm_tl_user_led_pins[] = {
8 L$ Y0 h  x( A3 t2 g        /* These pins are definition at <mach/mux.h> file *// a; F& S  O: X" o3 p( B4 l2 o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, F! y  o0 |: e* w/ N: A& \  B
        -14 Q. u* ~# W2 ]
};/ `2 U6 M0 d9 i# S9 x. C. u7 ~5 T0 C

7 N& r* ^! I4 Pstatic struct gpio_led da850_evm_tl_leds[] = {! |+ {* f$ h9 a5 {( y
        {
2 ]. c( Z3 f, i' @( z% q& l3 l                .active_low = 0,8 p+ R: Z. `# G: e5 A
                .gpio = DA850_USER_LED0,. `6 b- K$ x  {4 L4 a4 X  y
                .name = "user_led0",& _7 g4 k) D- b0 D- {
                .default_trigger = "default-on",* s- {0 J1 G- Y  O
        },/ X5 }! {. P& B' k4 Q
        {# p& J. E4 u' O7 T/ n6 Q( I
                .active_low = 0,! Y4 X" u9 E5 S
                .gpio = DA850_USER_LED1,8 }3 ~+ j5 {  s+ c" ]( s- D
                .name = "user_led1",
/ `% q( w/ z- e) O                .default_trigger = "default-on",
6 s- ]1 h' V3 K# ~9 @: d- U        },
+ C' I3 ^: I& a# ^        {
0 k0 v; c7 ^8 k! v6 \                .active_low = 0,
; ^  w) m/ s" {) P8 Z# A                .gpio = DA850_USER_LED2,
0 q8 F" O5 Y$ m8 a0 w- o7 E( B% Q6 A                .name = "user_led2",2 s! F( w9 m" v. r  r1 u
                .default_trigger = "default-on",- B* ^/ Q' I5 @3 H! ?/ F
        },
1 `/ ?$ J. J) y& {        {
# K6 b  I) {  \. C6 b                .active_low = 0,
+ K: R5 e& [- |$ i' I                .gpio = DA850_USER_LED3,
  F5 v+ r6 q( ~; q+ f1 K                .name = "user_led3",; X& [. g4 {7 R( I+ Y. O- r% u
                .default_trigger = "default-on",% [! X2 N/ G# w& w
        },4 W1 I4 K4 h$ m2 F
};
0 I# [" q9 c/ ]3 j% p7 v( ?, |/ d: N, j. W5 q1 t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% M  h; o3 N6 V9 B; d
        .leds = da850_evm_tl_leds,0 {' T4 d8 I8 f: w* k
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# t4 `7 w* y+ X! W# \' m+ @3 ?- G
};
4 W! h" o6 {! Q2 Z. B8 R3 e7 }. }0 y  C! u, h9 J1 V# p# R
static void led_dev_release(struct device *dev)! f, h* p. l1 h, H
{8 u$ ~. f( J6 k% W6 ]8 P0 N7 Q
};
( G8 L3 S; z- u% q) g
7 \5 W  }/ d- x& W+ D- O4 hstatic struct platform_device da850_evm_tl_leds_device = {* o% s0 z7 b' M2 W2 \4 x. G, }
        .name                = "leds-gpio",
# b! u4 y! E: ?' m) @, [6 T2 n. `        .id                = 1,
) z% c9 h7 V* \- O        .dev = {
; ~. S! i6 N, i                .platform_data = &da850_evm_tl_leds_pdata,
' J9 z( k8 Q0 f. J. T, y( y  N                .release = led_dev_release,
0 _" R: y: w- U1 |, \        }
! s) O+ ?9 a! |4 U$ S. @; z: U9 z};, o3 D' ^% z1 u- a" x
/ x" a0 R) t, Q( B) Z
static int __init led_platform_init(void)1 n' @/ H$ g5 C$ p# Y2 Z
{8 q% s2 o2 ~" Q, j9 [
        int ret;" I; i6 }( L4 \# Q
#if 0# Q' O3 {' S% g" o6 f9 s4 l4 L( V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, P) z1 i9 o& ~( m! v7 ~% {- a7 u
        if (ret)7 f6 Q6 Y* p! |% S1 K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# i6 ~6 l) g' I/ s! J' f
                                "%d\n", ret);
7 N) z+ u) p5 ~8 ~6 A$ m#endif
8 Y! n- }4 M& X$ j- ~        ret = platform_device_register(&da850_evm_tl_leds_device);
9 l1 _# o- o4 A' j( z. {# a; r        if (ret)* s) A. K* z& C, x" Z8 J
                pr_warning("Could not register som GPIO expander LEDS");0 H. x% W: K+ K) N( ?1 G
        else
* T; O8 V. C. Z/ F( l$ |                printk(KERN_INFO "LED register sucessful!\n");# V1 H0 t5 X7 a) \

. g+ p& i! _" a5 |3 ~/ w        return ret;
7 K) j$ ~* r8 |5 E5 |. |# d7 F}# y  M* Z$ B% h7 r* d. w
* v& ^2 w9 T- h7 D
static void __exit led_platform_exit(void)8 X1 n8 i$ p+ U, o4 p  r+ J  y5 [
{" b4 {( l# X2 H  H
        platform_device_unregister(&da850_evm_tl_leds_device);
& [8 e, Z( L  w# K( W  N! P) B7 x3 m7 {- x( P! ?, V8 a$ z+ G" S
        printk(KERN_INFO "LED unregister!\n");
# L/ ^" k5 }$ c( W% m}# e$ n1 `& [9 ?& o# |! a: d5 T, o# [

% a! A) F, J) W) fmodule_init(led_platform_init);1 w9 x/ B& }9 @9 y8 h6 S' r6 ^! X
module_exit(led_platform_exit);
/ t) ~6 V. F0 P. {/ r/ E& T; e5 {% j
MODULE_DESCRIPTION("Led platform driver");+ J: E2 M* H) f% T$ H# }% O
MODULE_AUTHOR("Tronlong");$ \0 n1 k: s6 u9 p# u
MODULE_LICENSE("GPL");
5 k7 ]% e" l1 t) X
4 W9 y, B( `& K* t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-10 15:17 , Processed in 0.038616 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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