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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) B( s4 h8 ~9 T#include <linux/init.h>
3 j( Z& m6 M: x9 ]! o, _' d#include <linux/module.h>( a( l0 k* }1 @2 U- v
#include <linux/kernel.h>+ ]0 Q+ m+ v7 C" _5 e3 @
#include <linux/types.h>; D1 K% H: j& q+ o* S! t
#include <linux/gpio.h>
6 `  A7 i1 ]! `$ c' s#include <linux/leds.h>  a) ]% t: |  V* t
#include <linux/platform_device.h>9 R7 y  V" q9 q1 J8 [
1 d5 c6 q% Y: b! ]5 _  _( a
#include <asm/mach-types.h>
. d' T; P+ B* s  I& f#include <asm/mach/arch.h>) o# g9 k1 \6 U
#include <mach/da8xx.h>, \9 u+ b! C: K1 A7 G" l
#include <mach/mux.h>
1 F6 n% a, `" P1 b
; p. L8 _- s! m: F; D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- g" v8 Y: q4 R& u+ P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 J* [2 b( s; A3 m0 F0 S9 G. y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- Z. O& b. ]9 d, g9 i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# C6 e2 ]/ m# Z7 w$ e

* `2 ~* b9 E. P( |# W/* assign the tl som board LED-GPIOs*/* A: d; `5 {% L4 e5 F8 W
static const short da850_evm_tl_user_led_pins[] = {% D4 g8 I9 C' m+ P+ z) D
        /* These pins are definition at <mach/mux.h> file */: f- f/ F4 S) c) D  |  h$ n8 G
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) q8 U. R4 I0 E- \/ O        -1" p" G! P. m4 h# N, r/ h0 e0 x* j' ^
};
% ~! E1 N8 C  R5 a: x1 p" k/ W9 d* v
static struct gpio_led da850_evm_tl_leds[] = {
8 Z5 q7 k& n; G- w3 E        {
# A6 e- r  h' [; i3 t1 C! @) n                .active_low = 0,' j6 A* Q8 p+ ]( p1 l
                .gpio = DA850_USER_LED0,
; [. Q# `$ F  t! h: s. N. P) ?                .name = "user_led0",
; ^: }, O' `/ u1 |* v7 P/ X9 s( f                .default_trigger = "default-on",
$ q  ^" q5 M* x3 k, C2 r        },: V  m2 h1 V2 G. A$ I
        {5 y. l) ~" {# K+ Q; T
                .active_low = 0,+ F  K( L7 i8 W5 q4 e1 N8 h  A+ ]
                .gpio = DA850_USER_LED1,' t/ e. E/ Q# [
                .name = "user_led1",, Q/ m5 p) Q- k) Z
                .default_trigger = "default-on",( e6 T  x6 V; u& g3 {) F
        },( I+ _3 L6 e2 Q2 r  S- [6 T, a& X" D
        {
& L# @. i5 j! {$ A6 G* a: ]                .active_low = 0,3 A+ ?) \! J0 k6 w
                .gpio = DA850_USER_LED2,- d- }/ e4 H, d4 e
                .name = "user_led2",
  l. P+ K4 D- v! c+ C1 o                .default_trigger = "default-on",; X7 H  S6 K) B
        },
1 `4 {# d7 t5 _        {  C$ o# O' q3 F; k' p9 q: K
                .active_low = 0,+ Y- o: b: W7 s8 _5 S
                .gpio = DA850_USER_LED3,
4 b% Y  j) l+ M( s5 v                .name = "user_led3",
& s6 m: A4 Y5 C1 [) G                .default_trigger = "default-on",2 v1 H( O4 n1 m3 i% i* C" e
        },
4 [! E3 ?! e* i( _; R};
: t/ ?9 i; c$ ~  p
1 }+ M2 ]4 L. xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; ^8 j( `8 E6 y        .leds = da850_evm_tl_leds,8 h6 ]4 _0 `2 j, s# M9 w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- W! F! v" ^8 _  z4 }8 r& _, T};
5 P0 z- a5 ~& v. R% t  K0 R: [2 N2 e1 U
static void led_dev_release(struct device *dev)
7 G, ^8 A8 X( j( X3 k{
% s: j4 k) n9 z};: H/ z8 |+ [4 Z
% S8 E# d# T6 O/ K! Z# s/ c1 W
static struct platform_device da850_evm_tl_leds_device = {# A9 `; b. l. c& S
        .name                = "leds-gpio",& i" I) ?: {2 B* [3 W2 W2 b7 s
        .id                = 1,
% j5 u" n3 h: N, b        .dev = {' b0 }0 Y. L6 ~' ^- D0 V
                .platform_data = &da850_evm_tl_leds_pdata,. m( D4 m( r7 A7 k* u
                .release = led_dev_release,( F3 v8 O6 v* G
        }
2 D. e% W/ I2 y" S' n};
# z/ W/ L( q" `: u" q/ G5 {- j3 Z3 M' u" }+ ^
static int __init led_platform_init(void)0 O* ]1 \8 f: ^5 R, B. {" l
{7 W; d, L; R* c1 g, A
        int ret;
7 x$ y) k" E, t4 W$ u# `#if 0
- B* }( q) B6 g7 R7 g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' k% y2 G0 S8 j        if (ret)" L" H7 N- p6 w5 q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" J) O. k6 I5 ^/ C+ ?                                "%d\n", ret);
6 A' C% ?: V: N#endif# y* _  j6 B& x4 P" a9 A. w
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ K. h7 m  d8 h6 f7 P9 T2 J        if (ret)2 s, \  d" b# W# K9 r& D1 W
                pr_warning("Could not register som GPIO expander LEDS");0 f1 {& p9 f: v# ]% C- q3 C' q
        else. H8 v1 e0 T) }6 s
                printk(KERN_INFO "LED register sucessful!\n");
! ]/ s2 k6 A$ i& H0 R
4 g" m/ l  L2 h9 M! r, L* ]        return ret;. k/ a$ b, Z3 j5 n( h
}
5 H: x4 A+ o0 p, ]: O/ U" q& E: p6 r! K8 l$ w) u0 v0 q& m+ k$ F
static void __exit led_platform_exit(void)- N* j$ T; x- B3 A, @
{" E: h3 [' B7 x* n" w1 e
        platform_device_unregister(&da850_evm_tl_leds_device);* g+ I/ F) V. r' X! X

/ }: M: ?( T8 H( y        printk(KERN_INFO "LED unregister!\n");& \7 q3 C, v( S' M3 F4 s9 J" e! V' x
}
4 Q- y( F) d5 C- ?, z. }$ I, ~, {7 S" z$ r9 i% D) B4 F" O
module_init(led_platform_init);
, Z4 \$ J+ z7 I5 p- bmodule_exit(led_platform_exit);3 Y- }, q* B8 r. E; k* |

) p# F) a  @4 i4 O7 aMODULE_DESCRIPTION("Led platform driver");7 e3 ~, g3 A$ P0 N# }$ {; o
MODULE_AUTHOR("Tronlong");- d1 y8 }. r" a6 }% `. S7 G  }
MODULE_LICENSE("GPL");
" u. W& t" t! n' E1 g# s% E
7 a' N; ?; p! W. z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 16:48 , Processed in 0.044179 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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