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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; i+ {2 ], t* ?# {$ \6 e
#include <linux/init.h>2 S3 @6 `2 N: q. A& N
#include <linux/module.h>
$ h1 G) R7 n/ z8 v: E#include <linux/kernel.h>$ W1 z9 I1 M* ], p# ?, o% C
#include <linux/types.h>" c4 Q2 [1 R9 O8 X+ k2 r
#include <linux/gpio.h>
* _$ q% T6 [/ ~( n* ?#include <linux/leds.h>
' ]! K3 G4 P& f+ w! E+ ~" {# O#include <linux/platform_device.h>  O% O: \$ Q# }+ a( V2 ~, C# ~1 I0 a; a
3 k# j! W( n# ~( X$ u) a, M
#include <asm/mach-types.h>5 o1 o5 J0 ]1 s8 }- n) |
#include <asm/mach/arch.h>. N( `3 y9 r7 Z+ P; @
#include <mach/da8xx.h>
6 H: b% ^( s3 I- z) k#include <mach/mux.h>7 k' L3 k6 |( X; u9 @3 b* f
' }3 u; z7 L! s' R& G/ U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. ~  i0 X; [% ?: B- D6 ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; U8 X: i. I' n( E, x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 E! Q# q. \0 j( h/ a; M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 E% x: C3 ~, `) k# [

) N- r  O, I* R/* assign the tl som board LED-GPIOs*/, R" ~; Z8 _6 w
static const short da850_evm_tl_user_led_pins[] = {
" [4 H, ~4 c5 t- R  S- t        /* These pins are definition at <mach/mux.h> file */1 J0 H2 y' T7 h( F, z3 m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 y4 d, L$ I5 t: n  V/ R
        -1
' I" h& j( T9 z( Y% q, b};
' [3 d. x$ v+ q* c5 L" c
7 V$ g3 f6 q4 z) fstatic struct gpio_led da850_evm_tl_leds[] = {; Q% y# r7 T9 F- q
        {
3 B4 Z( v8 a$ M8 I, |                .active_low = 0,
7 X8 D5 R: i* F0 I0 C, d                .gpio = DA850_USER_LED0,
6 t/ N6 t6 Y: [1 ~0 b                .name = "user_led0",  {' F2 O" U9 j, }5 e$ K. T
                .default_trigger = "default-on",# b3 q/ Y( g' @! e! G
        },; z4 j! G$ P/ c; ]
        {
, T& }: m1 X4 B) q2 |  H, m) L                .active_low = 0,
6 ~! L' J" z; w/ A5 W/ q& y                .gpio = DA850_USER_LED1,7 d5 e- N) e' N" y8 p
                .name = "user_led1",, N1 b- {3 e+ j* q- W2 C5 l: q
                .default_trigger = "default-on",
* A) I0 u0 W1 `6 r* L        },
7 t. C3 A& S# q0 k        {6 `0 t* i2 ^* R; a
                .active_low = 0,  x* c$ J/ V  I& {7 {
                .gpio = DA850_USER_LED2,
3 ~  g% T: u( R4 \                .name = "user_led2",. p6 J) g9 q9 |: L
                .default_trigger = "default-on",
6 }2 e  Y2 ]: Q$ t% u        },
/ [6 w: t  P* v" m' ~' L% @        {
1 P1 g% Q0 l6 \4 l  x. [0 a                .active_low = 0,
7 X& r# \( B1 E, y0 C, `/ W3 q0 t: v                .gpio = DA850_USER_LED3,; x3 D1 y: G- B* p
                .name = "user_led3",
, k0 R3 @' _# C6 f6 U4 I5 G, r7 Z$ K                .default_trigger = "default-on",& I3 s4 J1 q- Q5 T  I
        },
, ]" B" g, `) I2 s0 L};' t: m  c, R4 B/ M2 a
' @& y! w% e" {: M+ W7 b2 _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; S0 h  {* Z# s
        .leds = da850_evm_tl_leds,
- B+ L+ ~4 s7 h2 L' _- k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 i" n# W  D) F5 N! z9 N! W2 n7 A& |};! R) |& U- E/ T) |, s

) H. r! x  d$ w1 M" A: Qstatic void led_dev_release(struct device *dev)
- l$ B$ Z8 L# t# d% M{7 c* v/ `0 P1 }' ?$ L
};
/ j- F" G) `8 U5 \6 k, R/ \: [, {: `
static struct platform_device da850_evm_tl_leds_device = {
1 g3 \9 l& A( K, `! v& |# Q        .name                = "leds-gpio",
/ T" b) h9 m+ h  J$ G5 }3 Y( m, D        .id                = 1,
9 j' u" O6 V/ ^2 b: D        .dev = {- }! D) H& I+ M7 ^
                .platform_data = &da850_evm_tl_leds_pdata,5 ~. L. k. R% g+ X& O* E, j  I
                .release = led_dev_release,% p. C# @+ o1 C1 y3 w
        }" @+ j7 A( s4 ~  G$ Z& h1 H
};8 m- W. i4 o8 C, [# a( L
% x/ E% E0 I7 W& [
static int __init led_platform_init(void)
4 b  C5 H2 `& N6 C4 k{+ i, c2 }# v# o1 q) y" {7 b
        int ret;
/ W! x, x6 y6 Q) j  s* x#if 0
0 n+ B# G2 f) K- r9 \        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 {) z3 W' K. N1 J$ Y$ i& h* [
        if (ret)
+ y6 {0 s/ F4 U* _, s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 c" F/ l: _0 c! S( Y5 z8 W  N                                "%d\n", ret);* c) }6 ^' e2 B/ M, W
#endif
8 G" S, L8 ^! ^7 h! y; b% C        ret = platform_device_register(&da850_evm_tl_leds_device);" c  ?' o: l; e0 U( c! r
        if (ret)
% W* v; Y6 c  \( e+ c0 c1 z) e                pr_warning("Could not register som GPIO expander LEDS");
2 R2 r; p* N6 S. h+ A6 a8 N; W        else
3 Z, k$ P# o/ Q) ]0 _                printk(KERN_INFO "LED register sucessful!\n");
2 i5 f4 i# M! [7 i3 z; s7 M/ S; \
        return ret;9 Y, i, X( R1 V1 B8 i0 l9 V
}
% E% U/ K: H0 x1 o8 ^: Q+ n2 g9 q" i4 F/ E9 g6 Y' y
static void __exit led_platform_exit(void)
7 G9 G, j, e8 N. A7 q8 _, A{
; W: f: ?( I! O. z4 p, u0 Y        platform_device_unregister(&da850_evm_tl_leds_device);
1 ?8 @. m2 a: |( z
9 [. W* E5 o! J        printk(KERN_INFO "LED unregister!\n");9 j: F' Z" ?# L3 \
}
, Z' T+ @) ~" k- W5 G4 m1 J
  J; p2 ^- U2 a1 W& \) Emodule_init(led_platform_init);
+ k9 d; X( U: p) `9 f# ^* p! Ymodule_exit(led_platform_exit);
9 Z9 m7 z1 f( Y% e1 a
( t& W, Y' d4 N2 K7 R2 i3 O. _% _1 W& [- EMODULE_DESCRIPTION("Led platform driver");: n3 Z: w: j: g* o
MODULE_AUTHOR("Tronlong");
6 I+ ]! h* [( A6 M* ^- R5 ^9 SMODULE_LICENSE("GPL");1 s4 o3 ]* R9 q' e3 T
8 @4 M( p6 ?& f$ J: r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 06:15 , Processed in 0.040515 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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