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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# F0 Q1 u' C. M/ O5 c#include <linux/init.h>
9 G+ X' S  N8 {; l#include <linux/module.h>6 Z  T- o3 ?8 |! g7 n! M! |
#include <linux/kernel.h># S) e8 a' }! u# p5 R( W* Y3 i2 L
#include <linux/types.h>" [  K" W' X) ?) f
#include <linux/gpio.h>
2 y6 \' W2 i2 S5 c" x#include <linux/leds.h>
# Q* P: `1 n% \5 D) @#include <linux/platform_device.h>9 u$ m) h; d! Z; l: j: c2 h
# C+ ~8 t# u2 z8 V
#include <asm/mach-types.h>0 |/ S& E2 H% V
#include <asm/mach/arch.h>& v6 h9 V4 {! V
#include <mach/da8xx.h>0 s' `! _+ {+ M" y
#include <mach/mux.h>) N/ t5 y2 m9 C' H

- S2 u0 }8 t3 Y/ w$ y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 m" c: u8 y% V6 U3 |) y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% h- R4 u6 c# q( q/ _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& d2 E0 B) S; ]/ }8 L- O' s& g* y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 L# ?' Q4 H$ W* s* v
% e) v8 Q* }( g8 u8 b
/* assign the tl som board LED-GPIOs*/
7 G; }& N3 S& B  i( x: o( ^static const short da850_evm_tl_user_led_pins[] = {  F+ w3 X6 o8 E! G2 I6 x/ j
        /* These pins are definition at <mach/mux.h> file */
! S" r, g. Z( p! C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 D$ Y- F& {& V# A3 O5 h  |1 d+ B
        -1
# h  j5 X- Y' q/ q/ |" q};
# h: n1 \. m3 J9 q" o: Z' X5 \8 K: Z7 F9 N  V# U. @$ J0 s: g! W
static struct gpio_led da850_evm_tl_leds[] = {
+ u- {2 o# ?7 d        {
9 T) U6 `+ C4 H                .active_low = 0,  r, A* [3 D/ j2 h, _1 i: h& b2 p5 M
                .gpio = DA850_USER_LED0,
9 z# Y: y5 s, W                .name = "user_led0",! b$ \  N! s0 l; V- u0 W6 c
                .default_trigger = "default-on",
, j5 Z3 ?4 q$ G! l5 g0 h        },
& p, U  D3 \+ M, O, q        {
3 E+ \% o0 i( u: N% _* \2 d- A7 \/ }                .active_low = 0,& Y: x" G& n' ?, F0 W: Y5 C* y9 i  a
                .gpio = DA850_USER_LED1,
2 w' t2 L& D; s; F0 V$ q4 g                .name = "user_led1",
& N5 J# g4 Y" z6 q, S; V( f                .default_trigger = "default-on"," i7 I3 t; P) l+ x9 x& Y
        },
8 b+ ^/ h9 J8 p9 t        {
9 v; h6 E/ ^( z5 T                .active_low = 0,, T; x/ z: a* e9 ]9 F! |
                .gpio = DA850_USER_LED2,# R+ ~/ u; ~! K! D) |5 C
                .name = "user_led2",
" U, L0 g+ V8 d9 |( q; p. Z( u  H                .default_trigger = "default-on",+ P5 C6 W$ Z/ S/ l- P- ?
        },
0 _$ f( b2 d( `3 S& y        {
' l+ w, ]: }! k                .active_low = 0,
* B, T! X7 n6 ^1 _. H4 t8 H# u                .gpio = DA850_USER_LED3,
7 G, P1 b5 t1 u# h                .name = "user_led3",0 d) m3 H2 ~$ J' X0 j8 ~4 {
                .default_trigger = "default-on",
8 z3 J1 f5 C; u) ]6 V        },
. w& H* [9 v2 q  D& q( K1 Y};, k( x7 k+ _" X# s2 ~0 i
$ |; e2 Q" A- \; Y9 L8 {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 H- D, C: o" Y9 e0 |  E$ P4 d
        .leds = da850_evm_tl_leds,
- H* \( W+ t5 O2 _" `6 o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 j* e+ s3 s1 ]};# [# W: J# v$ I, P1 s

. K6 Q- s2 R9 Z7 ystatic void led_dev_release(struct device *dev)
% ]" U8 {1 v0 J" y{' B( a1 Z6 Z+ W. p, `2 z0 h
};
4 Z$ p$ R! Z: N: u' r% [+ B- M- m* U  h& B
static struct platform_device da850_evm_tl_leds_device = {
9 @' \$ y+ u0 x* Q5 p        .name                = "leds-gpio",1 m( n2 e, ^3 e  K# k. Q3 {9 B( K8 Q
        .id                = 1,
  u7 s" p2 \* d8 }        .dev = {
- C, w! l+ p! ]3 e4 I2 P  W4 u* ?2 [* s                .platform_data = &da850_evm_tl_leds_pdata,
/ N6 E. J& o" b: h                .release = led_dev_release,
2 _& E& R5 S0 y; S' F5 ~# G2 t        }
$ u6 m9 ~4 |* }" T% l6 n};
6 {3 q7 T: X. X8 h- {4 J$ q: M1 c1 B4 g
static int __init led_platform_init(void)$ o  t! o: i1 t  P: A* t. H, o$ u
{
2 f' g3 r! c5 M5 M8 x/ s+ W        int ret;; L3 k( i  Y" _, U
#if 0
; a6 t0 }% C0 Y% B        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ u# P% m9 d$ U" l1 O, R+ V
        if (ret)
/ V' i; Y! R) O8 C! b4 Q1 ~; g8 @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 Z! D/ j( X4 y! L0 t                                "%d\n", ret);
$ T7 [- Z4 r6 q4 t6 p& E( D#endif
) G3 n5 O$ H9 k& G        ret = platform_device_register(&da850_evm_tl_leds_device);* @/ t% u: n- O+ O
        if (ret)
! N' }# t1 X$ j  E7 ^2 e% c$ s6 v                pr_warning("Could not register som GPIO expander LEDS");$ [. c  ?2 M8 }/ v* r
        else3 [5 D  a4 |. R+ p: U5 u
                printk(KERN_INFO "LED register sucessful!\n");9 p& z9 y6 W. l- R7 `

! |, |/ l* k; Y& q        return ret;
) _+ M: n% F: u# _/ h9 n9 X& h6 y}
$ p. ]  B2 R9 Y$ C. y# f, M
* z# x7 p4 G  s% G; sstatic void __exit led_platform_exit(void)
0 X+ k8 ^0 `1 ]{& m3 {& T1 Y# p3 a
        platform_device_unregister(&da850_evm_tl_leds_device);
+ D1 b; z- ]( N3 N
7 j' N" s3 F# L* d, b0 g; K5 a        printk(KERN_INFO "LED unregister!\n");" T/ ^% G2 m5 k9 H/ }
}# n/ N/ r3 |! M& Y
! U8 _8 X( f6 k4 T9 \  w
module_init(led_platform_init);
" k9 n) [6 ]8 vmodule_exit(led_platform_exit);
+ L8 b! I  |5 v5 G& }, L- G; c* v
' z2 p4 c! y0 A3 ~* [! |MODULE_DESCRIPTION("Led platform driver");0 l, R9 f5 `# I- f  A& m
MODULE_AUTHOR("Tronlong");
# t, s8 {) K% I9 M: yMODULE_LICENSE("GPL");0 `" s# L# g2 T
. j6 Q6 {; \( \- Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 01:55 , Processed in 0.040767 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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