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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) o# L9 n8 ^( [8 C: `9 D3 G9 P. ^: Z#include <linux/init.h>- V9 b: i! j1 H- u4 m8 j9 j/ |
#include <linux/module.h>& R6 w; n" n: V5 y  z! f- @
#include <linux/kernel.h>
$ B. }9 M% |, ~( Y4 I- s$ h#include <linux/types.h>% f- [) @4 W' e7 T# v/ G" A' F
#include <linux/gpio.h>
# N1 S: r1 \' r# M#include <linux/leds.h>% B" o+ w1 Q  w8 Q+ t5 T3 K6 y
#include <linux/platform_device.h>
% r8 f4 m, o4 z9 w
% w! A( m1 C+ I4 j. x% u, q4 p#include <asm/mach-types.h>
1 Y$ i$ m  R9 g2 t2 c7 `0 ^#include <asm/mach/arch.h>
. ~; ~( A% O) U/ h#include <mach/da8xx.h>' k. F" j4 S" O
#include <mach/mux.h>' l6 k0 p( q) N- P1 O- _# {

4 _& J' j0 e% j) Q9 x#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& L- B$ v3 S5 i8 m, [2 f+ ]+ b
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& S  u# r+ ?: Z; i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 c' c" V8 B) @1 j/ E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; f/ Y/ M" E" d) r
  A2 |2 [0 x& g2 `* o* _/* assign the tl som board LED-GPIOs*/
* N: k* w1 u' O+ Kstatic const short da850_evm_tl_user_led_pins[] = {0 F- A  \9 P0 P8 Z# S3 H# I; m
        /* These pins are definition at <mach/mux.h> file */8 K9 j1 O' Y; c, g0 L. s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- X8 b& Z4 z/ _5 f" I        -1+ `) q. N7 z3 g7 F* b  H; a3 u
};
/ M7 o$ Q* l7 w! [4 E1 T+ U4 o( p) w) o1 {& D6 a+ o8 C( j
static struct gpio_led da850_evm_tl_leds[] = {6 c% s( B/ m# j. ]% E
        {; R' W3 k6 Z9 k: S0 O5 J# |
                .active_low = 0,
* }8 S! |& d% X! [1 t                .gpio = DA850_USER_LED0,
  {1 R7 g+ z1 w& F                .name = "user_led0",# @9 d' [2 E5 Q5 N
                .default_trigger = "default-on",
# }1 K, Y6 H/ h+ `. w  k! \        },
: b/ t- u+ D* @& C0 s        {4 C8 g4 ]+ d$ J9 A6 Q3 y# a7 C
                .active_low = 0,
, |$ B! P- w) L' o7 L                .gpio = DA850_USER_LED1,
' P: K8 S. B! h7 i. c8 r( J0 h( F                .name = "user_led1",) A$ s3 y4 [4 ?0 f
                .default_trigger = "default-on",7 x: }. g- c& }' x4 j4 I9 Y: z3 `
        },
8 J& |8 ^/ q: j+ G7 E        {6 W" Y5 A7 `% C: r$ G) O
                .active_low = 0," f. c/ m' Y/ v  \, W
                .gpio = DA850_USER_LED2," @' O9 O  O- H1 o: `4 V: R
                .name = "user_led2",, h* ]. b$ u; p
                .default_trigger = "default-on",! R4 R5 p# G  U& [
        },
. W  n7 g- K5 U. f; W. N        {5 }1 n; K2 v1 l0 ~; o, X
                .active_low = 0,
# v) {5 ~8 b3 s6 X0 k5 E                .gpio = DA850_USER_LED3,
7 S- Z' i  N+ b. P- D% d7 d                .name = "user_led3",5 `" x, G4 S* Z9 u  t# f
                .default_trigger = "default-on",
3 n% ^& [2 Z  N        },
5 x$ ^' @4 d8 d4 A* ^- I};" |6 `9 E' C* K6 `; M5 [( T
8 T3 h- \; g$ A- p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 y" O: q, A1 ?" O  n/ y/ v# |
        .leds = da850_evm_tl_leds,' ^4 W% p- Z3 q1 Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 V" h+ E0 K) X0 r- @% }2 i
};2 l8 P8 P0 A! C: c
. Q% Y9 y% r( Z' E
static void led_dev_release(struct device *dev)
, a+ h1 n. |* L{+ y% X7 `9 @  P# p4 d
};3 q: U0 |" C% B0 D5 ^: v# S4 K
- e4 O. @( \( {& z3 B9 l* }7 d
static struct platform_device da850_evm_tl_leds_device = {+ f6 P% [7 c2 c' e9 x" ]
        .name                = "leds-gpio",! I4 {% d% C5 `6 e
        .id                = 1,
7 g" w0 g! ~1 t! r        .dev = {
' P' X+ f4 h9 B- `4 l# R; D                .platform_data = &da850_evm_tl_leds_pdata,
5 y9 V, p' x. s. k/ ^6 ~& p                .release = led_dev_release,
5 M* `  e8 Z# o        }
: E# h$ y2 a$ N; O  C- Y};9 A4 v0 _0 G3 i7 [
0 p8 n4 J: H2 n+ j. \; x! A
static int __init led_platform_init(void)
6 K( S4 \) L  U, i{
* g( C+ A" Z4 K        int ret;
4 i/ F  L! V; @, @$ D#if 07 j- a; P/ w2 {. q# Z/ J8 v9 ^! _2 G& r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 }# O# }7 d# P) z9 I
        if (ret)
) X8 h8 q4 g2 ?- K! y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" s+ d# c+ ~& i- P6 ^$ P                                "%d\n", ret);
3 Y5 ~, f( I9 \) p#endif. i; m9 j# k% B& Z! \
        ret = platform_device_register(&da850_evm_tl_leds_device);* J) a$ l3 y# p$ Q; \; Q# X0 W
        if (ret)) D! P( f$ y% Q  Q$ _4 \4 k) e
                pr_warning("Could not register som GPIO expander LEDS");: h- T7 ^) o' J% w# n
        else2 R! {, j! ?9 m& l4 p& M% X
                printk(KERN_INFO "LED register sucessful!\n");
" I- z. {9 |0 f$ t' s8 r
$ v; [- @# I0 @3 _        return ret;8 \% [# @7 @3 `$ O
}
: `2 L% }/ k7 ], w! e* z# T
7 z# E' `0 I7 r' }7 k% g+ J# p- @static void __exit led_platform_exit(void)
) x$ p6 w: C! P5 m2 g{$ c1 f( q- c# u! \6 c
        platform_device_unregister(&da850_evm_tl_leds_device);
5 Z, D% X/ `* S5 w# w5 ^' g7 `1 c+ Y5 ~) c0 H1 W" `
        printk(KERN_INFO "LED unregister!\n");
/ v: E! K. A9 A1 Z6 K+ m2 r' H9 j}$ j. [7 s! @) D3 E1 h$ o1 u
  m$ G# c. O9 f0 i5 ?: s
module_init(led_platform_init);! f. Y! x9 f" h% ?
module_exit(led_platform_exit);2 M) f  M! g! u% A' P2 H3 W
4 g0 G+ ^" q1 [" i: M# t
MODULE_DESCRIPTION("Led platform driver");6 i8 g; p+ D4 k# E, U  |
MODULE_AUTHOR("Tronlong");
$ K9 s" d! z& ]& ~" MMODULE_LICENSE("GPL");. N2 w& u; ~# U% H7 A
7 z* B0 g9 |5 C6 R% z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 18:58 , Processed in 0.040759 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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