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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 U4 w$ a' G! S( l
#include <linux/init.h>0 y( l' r* D' n) h! F/ x0 V
#include <linux/module.h>
( M: @* P7 c! \8 b) }0 S# X# \#include <linux/kernel.h>- Q1 w& f! h! A" o( N& P& O) J
#include <linux/types.h>2 @$ [5 ^; a% {7 H! H# O
#include <linux/gpio.h>
4 K: |8 C+ P0 B8 }  E. |1 N" ^#include <linux/leds.h>$ o- I8 j! V! a0 K1 L
#include <linux/platform_device.h>
  o2 x% E: V2 B( B) D
$ Y+ i! \0 m/ K6 D#include <asm/mach-types.h>
$ A/ r3 i. H- r7 x% H. O#include <asm/mach/arch.h>
2 z4 G* r( {; W; k#include <mach/da8xx.h>
9 ]7 v/ z% l9 M1 ]* C  [* }5 X- U9 |#include <mach/mux.h>
5 H% l6 ~- u) K/ R0 r! g3 p0 `# O( `  e
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 X: O% b! C4 o& N+ G* d4 i4 L" w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* ]6 x% E8 A% J$ [* p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  `, J4 e; z1 R8 O( ^' I2 c) K5 w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 ~3 q* ]7 P; P1 P5 g4 _: ~" }: I6 \9 M5 S5 f) b
/* assign the tl som board LED-GPIOs*/5 k# H. Q+ ?6 }/ F4 G8 R) p" P
static const short da850_evm_tl_user_led_pins[] = {2 t, z& |' w+ r! T  {& D  L
        /* These pins are definition at <mach/mux.h> file *// H0 v7 `4 m& p" Q5 C; t# `& N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) F' C1 |% U2 h, n9 W
        -1, T. J1 O, u8 Y( ^
};
+ h. P7 c0 V7 m5 J; r8 p, K0 g$ a5 ~+ N0 J% y
static struct gpio_led da850_evm_tl_leds[] = {. ~" ^) {1 |& p6 I5 X+ c
        {
: A9 y5 i0 o. }1 l& F5 ^, h  b. y                .active_low = 0,
4 J2 ^% H8 L4 Q$ V# x% o3 u) a/ e, i                .gpio = DA850_USER_LED0,
, Y6 b  f4 L1 O3 ^                .name = "user_led0",# `: B$ N) f# @& |3 m. b0 V
                .default_trigger = "default-on",$ p* }  i0 M: I
        },
/ k& T6 e1 t% F9 ~& r# s& {        {1 `9 C' e5 g' @5 U
                .active_low = 0,0 U6 E9 Q' l+ y8 k% U* b
                .gpio = DA850_USER_LED1,8 h5 u* K8 \% \2 t
                .name = "user_led1",2 p4 S3 ]" R2 h! u, p+ G7 k
                .default_trigger = "default-on",
2 ?! Y- l: ?& I4 a" G+ _, Z% Y        },$ F+ y0 o0 z7 k) H6 ?5 l0 @
        {  @/ Q8 N, a7 W/ O7 s
                .active_low = 0,0 T, B7 W+ d9 v
                .gpio = DA850_USER_LED2,
' S2 j# W; v/ m2 r9 d                .name = "user_led2",
$ H$ w. K* X* Q  d                .default_trigger = "default-on",
" H8 B# Z! n2 G2 g6 Z. a        },
" y9 U2 Y$ A2 d% G8 ~7 o# j6 `        {
; x* N+ i  \: s3 z! x, F+ j                .active_low = 0,
; `1 S, _/ Q. R5 z8 d                .gpio = DA850_USER_LED3,# G/ l5 M& U' _( m
                .name = "user_led3",% L$ O  o1 R. q' ^( D% `
                .default_trigger = "default-on",4 b) H% _. x* Y. D$ z
        },$ E  f% j2 e5 [2 _6 T- p
};3 O: W2 N0 ~. Q4 L
2 b8 F% W: k1 L6 b) T% H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 X; D" K* F7 t$ h" E, E; D8 S        .leds = da850_evm_tl_leds,
% F$ u/ o* }; e        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  ]& W" {1 g7 |( o% R. ?5 G& E
};
( p' @9 z! Y0 W; w5 u8 |4 P
" o, n0 C( J! u1 t5 w9 Kstatic void led_dev_release(struct device *dev)
6 _; t1 Q4 g  l9 Z$ D$ i{5 U# U* j( z& F- f2 `' m! o
};
# k0 {. D! J+ {: o5 S8 j2 J- G+ x; a5 b$ {( V
static struct platform_device da850_evm_tl_leds_device = {
4 U5 _" b" R& K        .name                = "leds-gpio"," @3 t& q! @" y9 P) D
        .id                = 1,
: j* X3 q0 H# j3 F1 ~9 S        .dev = {
' ?" l  M" `% Z0 ~, N                .platform_data = &da850_evm_tl_leds_pdata,
3 l" X5 v1 z( w/ @9 o# o" y                .release = led_dev_release,
  Q) C& x+ J/ `        }
" c9 E! U( t7 k};$ Q# K/ P7 o# Z5 C' H# J+ F

% G6 s) |$ L+ S* {static int __init led_platform_init(void)
$ W+ t: @4 n$ {1 C' S+ L{) U9 Z- G. i- E' R4 |* e& k
        int ret;. W& A1 |7 Q2 F9 P9 t
#if 0
9 h; `& V' o7 u  v- t% V! n- {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& m4 R" A0 S- |  j8 B7 @; J. \0 C2 ]
        if (ret)' c( P: S% u4 V6 F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; p: d2 o6 X- c2 ]5 C                                "%d\n", ret);
. w9 L5 _/ [. f: p( u! d#endif: h8 x9 k7 l. Y, S6 s8 @
        ret = platform_device_register(&da850_evm_tl_leds_device);0 ~$ I5 z; v% s5 t" {: b% B
        if (ret)
# B2 M) f4 P6 Z                pr_warning("Could not register som GPIO expander LEDS");
0 z& z0 u. O5 b6 f        else  w# `- p5 c! i
                printk(KERN_INFO "LED register sucessful!\n");
3 w1 f0 j9 \' B& H3 c4 Q' F! J6 |- e% m  \2 ]- |( A7 h6 j
        return ret;4 S! ]4 r, n6 P0 R$ ~
}
5 C. K5 z, G! e& Y4 F- M3 z% x6 \7 @8 Z; {
static void __exit led_platform_exit(void)" S: z; s. ]; ?: t7 @, \" E6 K
{' O6 {& d9 i, a7 n0 o) l+ o% {
        platform_device_unregister(&da850_evm_tl_leds_device);
1 r, d# H4 M( i0 W9 o3 {7 L+ q% b( R2 Q6 b# J
        printk(KERN_INFO "LED unregister!\n");; y. a; N. R" @  b& l  d9 z5 f. y
}
1 N2 i1 S$ X/ }0 h' E
9 T( Z* s  Z4 c8 `7 qmodule_init(led_platform_init);
0 f' N" u3 ?* o: bmodule_exit(led_platform_exit);
% `2 B+ }  X5 K+ }; E
! h* Z7 [/ A5 h+ H$ T8 ~# uMODULE_DESCRIPTION("Led platform driver");& b, J- y. y% `) ]
MODULE_AUTHOR("Tronlong");+ ^. ^" x9 ?# d
MODULE_LICENSE("GPL");, L% a  Y' u6 U1 a) k$ H) H
0 X' w2 ~0 }- O; S/ ]; O) P2 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-28 15:00 , Processed in 0.040343 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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