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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  y- S+ w- U+ d- C6 J#include <linux/init.h>
& K6 K% ^  Z; p1 X#include <linux/module.h>% D/ ^; ^& c* O
#include <linux/kernel.h>
' |8 m: l3 }* M5 @. {. f2 R#include <linux/types.h>+ [: D6 V! p( |* w8 d9 H& c
#include <linux/gpio.h>. v  A2 J& B" F& q
#include <linux/leds.h>% V6 d& B4 A2 v5 G1 h" i' {3 }( V
#include <linux/platform_device.h>1 K8 N" G4 R& B4 l7 Q4 e* x
5 }9 D) S# x1 N3 x
#include <asm/mach-types.h>+ E7 K& L1 H8 N! w4 e4 O, V
#include <asm/mach/arch.h>) u) m# J, R, }% c3 S2 B7 q
#include <mach/da8xx.h>9 h3 [% K9 p. T$ @$ V8 |; y! C7 g
#include <mach/mux.h>
9 G8 U: [( h( T
, F1 y' D8 y8 D% K2 t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- K/ o2 [3 R( o( ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); v3 v$ q2 b, b. B' A% N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* I, z2 H& I6 Y; c( X& d# M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 |. f" [3 k5 N
. K" v8 ]- l5 C+ E* L5 c' ~/* assign the tl som board LED-GPIOs*/
- h" W" M% Z% Q: J# Hstatic const short da850_evm_tl_user_led_pins[] = {! I: L9 C% d% i' @
        /* These pins are definition at <mach/mux.h> file */
7 v/ R% S. \, @# K$ L! d' C+ \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) U$ O, d# `$ S9 ]4 H3 |        -1
, C  b( v9 ~, Q+ j& Q9 V" e* [8 f};7 ]; w+ o- \  i0 c. f
# J- Z+ z. T8 v7 Z! d2 Y! H
static struct gpio_led da850_evm_tl_leds[] = {( k1 `6 T5 C% ?# k* T' X
        {5 n& _) @% l, t+ k2 h9 h3 e! _/ w
                .active_low = 0,
/ p) u2 p4 Z' E' Y0 O                .gpio = DA850_USER_LED0,
6 X& ~6 C* d/ q, ]                .name = "user_led0",
" Q2 W9 y  h$ g0 {, [6 J                .default_trigger = "default-on",6 O+ o  W3 U1 A- s& k
        },
; s. B7 m3 d. V1 m; D        {
4 K  N' I: v; c8 N; Y; y4 ?                .active_low = 0,5 g9 B3 u1 A7 z/ @* b7 y. c
                .gpio = DA850_USER_LED1,
5 |0 o) o# _) F                .name = "user_led1",
2 D$ R7 w9 s6 }5 M5 L$ [- J6 V/ j4 ]                .default_trigger = "default-on",
2 w9 J9 b, W2 K  _1 |# ?        },& D6 I: g0 t1 y  Z% z6 w! U
        {* a+ H* l# {, Y$ s1 F$ r/ w& h# V
                .active_low = 0,
. v: M  K6 u( |* A! g  D# F% N                .gpio = DA850_USER_LED2,
5 F) U4 W  a3 r( [0 T6 r7 ?                .name = "user_led2",( p! q5 S6 E% Q; a; b8 I! O
                .default_trigger = "default-on",
9 J0 e; g* ^! g. S1 H& k& w        },
6 U+ T  b) y; q- F9 H3 }( _" Q        {" B- |# j7 z* h6 I6 _
                .active_low = 0,3 i7 V) ^7 |  @* i0 r1 O
                .gpio = DA850_USER_LED3,
$ a% d2 T- ^5 V- x* f7 w, m) l( I                .name = "user_led3",
3 f3 Q' H  T4 G6 e2 i% x2 u                .default_trigger = "default-on",- `$ C8 Q1 H2 [4 v  _5 P
        },
5 o1 x; X# \& u+ y& ?0 _};7 X( E9 X( m; H; \/ w

% {; Y' K4 x1 x9 {" R, J, X% cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 {/ X1 L6 C" w+ M2 ?        .leds = da850_evm_tl_leds,$ ?* z- k' Q1 N* Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ ~* u) u( C2 \};
, I; w3 h4 [  e3 D: P! T- N4 s7 n5 P5 U
static void led_dev_release(struct device *dev)- E7 ^, d, ]$ n' x6 L  N3 A4 l$ H9 b5 M
{& [' u4 N" h' M
};$ [4 L0 V9 s9 O' C/ h4 [3 x: W4 I

0 K; F) o' F" g2 Gstatic struct platform_device da850_evm_tl_leds_device = {
9 ~; b, i6 B$ ~# D8 B, m  [        .name                = "leds-gpio",
5 }/ I6 M/ ]) {) p$ c0 v        .id                = 1,0 r5 r5 U8 _/ x0 [5 n( h7 \9 x( J5 t/ g
        .dev = {
) W& A! B/ h1 J* q) h                .platform_data = &da850_evm_tl_leds_pdata,/ o: Z: c9 U$ z8 E. f
                .release = led_dev_release,+ i# h* @4 _4 V* ?) w
        }
8 V/ r! U. y- w};4 I3 t% u  \& C! b- w3 L
, X& Z2 z8 u$ y8 @
static int __init led_platform_init(void)
+ L& @. g5 L, @9 t! a{. g% t: y1 z. a+ N
        int ret;$ _" e( X: Y, h( C8 S: K/ e
#if 0
# Q/ q! K9 T. D7 H9 w5 R- }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* B* \5 q  I1 x8 F4 M, ?1 Z
        if (ret)# ?; Q) d* _& V4 k! f' J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 x, Z$ s) N/ }! u- V, j
                                "%d\n", ret);
& I' E' j! r# Y( t) B7 p! p8 ^#endif# L2 W4 D8 C% U) w. A3 ]
        ret = platform_device_register(&da850_evm_tl_leds_device);1 v- t  J. ]4 f
        if (ret)
1 a& c( Q  ~! i0 c/ Y' H/ P                pr_warning("Could not register som GPIO expander LEDS");
( d7 l1 S& c; H        else
6 T3 d% W4 O0 O: M3 e* y: A                printk(KERN_INFO "LED register sucessful!\n");" M9 p  ]! @5 S8 e/ I

; I/ l. x9 H! H0 l6 f3 `        return ret;
5 {7 u1 ^+ @. c% }}
/ b# B2 {/ z& p# a& @. H5 W: K0 i0 y- \: B7 V
static void __exit led_platform_exit(void)
. h; i5 V8 y  @; U{+ j, I" A/ t( f! V  n, j
        platform_device_unregister(&da850_evm_tl_leds_device);
1 ]/ \; b, L  l5 C5 ~8 u% d. S5 F
        printk(KERN_INFO "LED unregister!\n");) v/ E: E7 u- b- a* r4 x
}
1 Y2 J0 b9 \' {- P0 x' i& A) [7 b% Y. n
module_init(led_platform_init);
2 x$ n6 Z8 S- Y8 Gmodule_exit(led_platform_exit);
: D' j6 _$ o, O+ `
9 K/ C4 x, v( I; YMODULE_DESCRIPTION("Led platform driver");
$ ?" C7 Y3 J; |3 n+ UMODULE_AUTHOR("Tronlong");
" N; u) `2 u) Q8 V# NMODULE_LICENSE("GPL");
- E$ q. ?: @: M/ c/ Q8 R. }$ K; g
/ _& _3 k) }0 I' f, A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 16:24 , Processed in 0.039346 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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