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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' d, a) i' m4 m# d' l7 ?/ L#include <linux/init.h>
& x$ n/ o! v4 S) P+ L, n#include <linux/module.h>0 f8 ~0 L" }- F2 a1 J% b
#include <linux/kernel.h>) g( E& U( O2 x0 u4 x
#include <linux/types.h>5 p2 X( j4 O# x! t* H
#include <linux/gpio.h>
9 ]" @) t, K6 V+ B7 p# [#include <linux/leds.h>
- _' `9 y1 i( \2 A) |# v1 E#include <linux/platform_device.h>
9 R1 K2 a4 E$ L4 |+ n5 g9 x' I- p7 H/ a  x5 U. |
#include <asm/mach-types.h>
6 {3 c& c$ M* ^, r  f0 Z% P0 W9 U#include <asm/mach/arch.h>* r; M! b( J. S* C+ x
#include <mach/da8xx.h>7 ]! c6 z5 y# L7 H
#include <mach/mux.h>
/ J; u% t9 h. t. R. v+ Y8 _0 @- f; G" O( K+ t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ ~- M: H$ t$ ~5 `8 i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 |2 h: Q% X! j+ `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! E. N; z9 ]! K1 w! v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# q( o* y3 N5 d, @& r8 {5 C+ v: t8 C: C% P% b
/* assign the tl som board LED-GPIOs*/, f% ]3 J3 J2 e: B" Q- H
static const short da850_evm_tl_user_led_pins[] = {' s. P) z+ o, P. p5 ?( ~
        /* These pins are definition at <mach/mux.h> file */2 M. R# P7 b9 J- @5 l) u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# {6 ]+ g6 ?  A: ~( V% C
        -1
2 u; A+ ^: W) |( R: p};
5 m! ^, _9 w" V- W2 J( A: L1 I: }$ _+ r& p2 Q4 I. E# t
static struct gpio_led da850_evm_tl_leds[] = {9 ?& f+ D% H2 X4 v7 Q2 M8 i
        {
' n: m( k6 L9 O, O0 D                .active_low = 0,
* \9 u/ j6 v( Z* m) w2 m* P) D/ L% N  R                .gpio = DA850_USER_LED0,
3 J. P! L% i% C/ q# g% S                .name = "user_led0",
7 J5 u* Y9 ^8 B9 ]/ H& W6 K. ?8 |- y                .default_trigger = "default-on",
& R& {& G: @3 b( t6 Z7 Z& s+ p* t        },  |6 J) J8 q- w" X7 o8 W# Z( i( L
        {8 ]8 w! ^4 v4 y; c
                .active_low = 0,( [0 |! u+ ?! T- v' C
                .gpio = DA850_USER_LED1,8 l4 ]; t& Y/ ^/ W8 S
                .name = "user_led1",
# v3 ?. F5 e+ r' a$ t. I; j  n# L! \                .default_trigger = "default-on",  Z: h# f& m: O3 `3 K
        },
$ K* ~# B6 j' A0 x1 u        {8 q) O( K: u5 E3 Q
                .active_low = 0,
' o( J3 G' Q( h4 {' q! q# Y                .gpio = DA850_USER_LED2,+ C, R/ T( j! M# \
                .name = "user_led2",# w4 T' D, G& f/ d
                .default_trigger = "default-on"," ^( }+ q4 I) y* j
        },9 a2 E. L8 w. A+ s
        {
" _4 W9 t1 B3 l2 c! l                .active_low = 0,
* b5 d' k, `9 U1 [% d- r4 ~  t; d                .gpio = DA850_USER_LED3,  M; A0 Q5 I- E
                .name = "user_led3",
- W' L0 E7 F" ~, B                .default_trigger = "default-on",5 k! U1 J5 f9 k7 S# q
        },
& E4 i  h5 L6 `& c* q1 z7 k};% E% [( I# n/ a, ^4 Y. O" l
$ ~9 g7 ^3 S: q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, G- N0 ^9 U/ [" @6 N
        .leds = da850_evm_tl_leds,& ?* V* c! f) l0 V5 T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 r6 @" g. A+ ^" H8 k
};7 j- n' {- j7 U/ S% P" _
9 B% [4 a4 K6 |* a
static void led_dev_release(struct device *dev)* g# l( |+ e! o' l" R
{4 B6 S1 b1 @2 e  G- E5 D9 D* `) J
};
4 n0 F, G6 _8 |5 v$ |# F% g
) e$ b0 H! m2 X4 g7 I3 b5 dstatic struct platform_device da850_evm_tl_leds_device = {4 V% ]. [% p- Y$ ]! s
        .name                = "leds-gpio",$ y% G- ^6 A, O  F3 D
        .id                = 1,! V/ J  k3 \( q. h- Z3 G, V
        .dev = {
4 @/ ?  v3 m9 C9 I                .platform_data = &da850_evm_tl_leds_pdata,) L( }" w* V& V9 ~$ `  H) v
                .release = led_dev_release,2 Z9 l9 R0 [% ^3 T( e
        }0 h; M3 r5 U4 K  |2 m8 K
};" u7 q) q9 W& O6 {

6 c# i% O: M; h! r/ gstatic int __init led_platform_init(void)5 S1 o! a" `/ p9 Z4 e2 M+ z
{6 l6 ~9 Y5 t% g# `4 f0 P1 X4 i
        int ret;
1 b! s* ^  q! f# t#if 0, w6 y0 y+ a# @, G: |5 ]+ A1 E  U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# V, b# h# B! b) ?8 q* d' M0 X8 L
        if (ret)
: w8 N5 _4 Y1 I/ c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 {3 ]( {2 q" g, i' D; S                                "%d\n", ret);& E( K+ q1 h4 \
#endif
7 k  j) R3 Q; u1 g* U- B, C5 E# Y0 l        ret = platform_device_register(&da850_evm_tl_leds_device);
8 K7 G' ~0 _( B: g5 d) y4 d7 n        if (ret); r. U/ m: v$ y# Y' I" _# t
                pr_warning("Could not register som GPIO expander LEDS");, o: p* J' ~& s6 a% _" p9 E. m; p
        else
- A: D* x3 L, f& A2 s6 P) W: n/ Y                printk(KERN_INFO "LED register sucessful!\n");2 H) H/ w% ]4 ]: y2 h2 Z

: n' \3 ]7 n4 a- ~7 [, T        return ret;( {$ m: k" K( O, V
}* z! }8 P% s& k

. H! e" [9 e) d0 qstatic void __exit led_platform_exit(void); H9 _. Z; V# [; }1 q! }7 ^
{* D* a! |* f' ], E4 N  ~4 ~. ~6 A
        platform_device_unregister(&da850_evm_tl_leds_device);. F% P- }( y1 h; Y* J  d: q

4 S9 ]1 O+ d; U; c' e. s        printk(KERN_INFO "LED unregister!\n");$ L3 w9 p/ U+ J; s* Z& P4 Q
}
3 ^' q' X2 J: T
3 i* c: r# S( M1 s7 fmodule_init(led_platform_init);0 ?0 |1 F8 s$ {: n" E
module_exit(led_platform_exit);: w9 X7 S, \6 i" _" L0 a
- _3 b/ O6 r" i( f$ v$ T
MODULE_DESCRIPTION("Led platform driver");: C3 `+ N7 ~& z0 R  e
MODULE_AUTHOR("Tronlong");
# O! c: O3 G) Z' L( LMODULE_LICENSE("GPL");
% E% d# A, D0 s: U$ t$ G2 H8 g/ A5 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-24 01:48 , Processed in 0.052013 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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