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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% A+ n8 Q: e5 f5 \#include <linux/init.h>
0 e3 c8 _3 @) g9 S#include <linux/module.h>, R, y. ^3 t' T: b
#include <linux/kernel.h>" w- i) j" b2 x
#include <linux/types.h>
, ^, p, u) n: c1 Z+ \3 ]8 K#include <linux/gpio.h>* J1 n8 G' T) W
#include <linux/leds.h>
% _! S; l& O4 Y9 `9 i#include <linux/platform_device.h>  Q, \+ n: j8 B3 X. x( b" u
9 U5 t( j/ ?, J. ^) j4 _
#include <asm/mach-types.h>
0 k9 ~" R3 H3 b8 X* p4 a#include <asm/mach/arch.h>
) {" c9 T) }2 F7 ~" _4 y#include <mach/da8xx.h>
/ W, o. M- |! j' J" S% _* t#include <mach/mux.h># E/ o0 o% x& ~- V

. ~+ O0 N7 ~* M2 ?% m- |; A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 E" @) f9 y: o+ W& \# J) Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 M" ~% A! z- D9 d* t9 {7 y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 U- J7 p, p& A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), A/ O0 F; j9 \+ `

0 u/ A. a; w* U# ?, X! ^( R/ M/* assign the tl som board LED-GPIOs*/
$ {# G7 n2 p  d. S+ w9 x; F. Wstatic const short da850_evm_tl_user_led_pins[] = {7 F. |( L- Z" p0 v* E( A; F0 K* H4 v
        /* These pins are definition at <mach/mux.h> file */
$ T" X" Y. a$ f/ P0 c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, s7 O9 i& m( w3 i+ H$ M        -1
- |% ^" `9 T* J! U6 T% l7 n};
# _7 L' r# Q3 v3 U! E) V! j- T# @$ n. \, i
static struct gpio_led da850_evm_tl_leds[] = {, N+ p( @3 e) d0 P' m; X
        {
; k- u0 {) z. V                .active_low = 0,* v& a- f, C/ M( ?
                .gpio = DA850_USER_LED0,
8 r9 v; ^7 b: ]& h                .name = "user_led0",; e' y7 b9 d2 X9 ~7 t6 ?) s
                .default_trigger = "default-on",
* }: ?! ^. ~! r1 d! t# N& `        },
& Y( f- v* k. D2 \        {  O* `" q4 j2 Q- w$ M+ B% d4 t
                .active_low = 0,. \6 T  N5 h/ P7 I- C
                .gpio = DA850_USER_LED1,
/ X: `; M- |1 |- v2 O                .name = "user_led1",
# P" E+ C. \6 S3 q) d& Q                .default_trigger = "default-on",. J" a( v& |5 k4 i% {
        },
: t- u% `) d$ ^, X% h  J& @        {* X/ Q  S) Z: ?* s. j# b! ]
                .active_low = 0,( D7 I; e- q! C6 a
                .gpio = DA850_USER_LED2,
& Y3 y% j2 j. I: M* l                .name = "user_led2",* k  @& X$ L+ ?0 v9 P
                .default_trigger = "default-on",9 e4 T/ E' V8 d# O6 c
        },
$ D0 K7 O* A. o4 Z" f4 a& J+ w        {3 p1 `; _: L) @" H
                .active_low = 0,' n- t: x) y0 v# Y9 d& H
                .gpio = DA850_USER_LED3,4 f* i. n" p" D; o+ v
                .name = "user_led3",& q' }$ S% e0 T7 W
                .default_trigger = "default-on",
% z: o! \  b& y7 b        },
$ H3 S7 M" z$ v1 J};
: E3 \3 O. S0 G5 p5 f8 @4 P- |
' q$ t& T( T: _* estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. c. ], V. \. c        .leds = da850_evm_tl_leds,
+ N( l- ^' F0 e% {% Z! |6 H6 u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ ]( ~; i, J$ q1 _+ u3 p# A};3 X% Y# L/ e. n  h& y* N. S

" ]2 A# b& K+ gstatic void led_dev_release(struct device *dev)
3 a  n* P2 O8 |6 b5 P{
. X; s! c5 }9 b( C6 p};! [% Y. D- f  v6 i

, ~) U9 Z- Y. c1 V3 O3 R  ]static struct platform_device da850_evm_tl_leds_device = {
& y. K9 @+ G* s        .name                = "leds-gpio",2 R/ |! a/ k( l1 {
        .id                = 1,) Z) S. h% M# f7 Q! T
        .dev = {, ]9 O- x. i7 K; k) R, n% w
                .platform_data = &da850_evm_tl_leds_pdata,' B7 q. {# t3 ^8 |+ i+ @. e
                .release = led_dev_release,
" z) [9 Q7 U* @- {! U9 i        }, |# h/ `: r# i+ p! J
};( Q+ g7 n7 J, V" }9 N% e+ ]
  N) f. Q- B% E# G; Q
static int __init led_platform_init(void)
9 E2 n, J: ?# }9 i9 c% J{
: W1 L" C5 y" B* n! I0 Z' O        int ret;
% i, t/ _+ u7 i" ~#if 0
( Q: k1 J0 P6 s6 s2 c# D        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" Q, f3 j# `0 Z4 M  a/ k
        if (ret)
9 j1 f2 e5 I* m4 G                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 i$ V7 N& Q7 M* i5 T3 `                                "%d\n", ret);4 R4 c- G4 V8 ~9 r
#endif
' o6 R7 p: w7 [& Y0 P/ p        ret = platform_device_register(&da850_evm_tl_leds_device);
* V5 J' E, p$ w0 Z' U8 {# ~        if (ret)0 ?8 }) h. n0 X8 h, B
                pr_warning("Could not register som GPIO expander LEDS");
, q+ _7 H& a% P- H3 X7 q        else
* t/ d7 e' q: }! j1 u                printk(KERN_INFO "LED register sucessful!\n");* g3 s! y' Y* U  m

9 Y/ D3 J7 t5 X        return ret;
3 H2 \7 |1 B* [0 y: A: F}
( @' g& |1 W2 M2 m2 Z+ j% o+ h$ w: w# q1 H7 I
static void __exit led_platform_exit(void)
& D7 ~" v# \9 V0 s9 B. @{
, x: _1 e, Z1 h7 i2 f/ H        platform_device_unregister(&da850_evm_tl_leds_device);& @+ c( s2 U) P' c# Y/ D

  Y! U% [9 x$ k& @. D8 {        printk(KERN_INFO "LED unregister!\n");
( b; O, M$ B/ Z( s! s}2 A* r8 F9 b' E2 ^; u

7 e5 U# i; R) }* k9 M  l& \0 Z5 qmodule_init(led_platform_init);2 m' f- p! B$ ~6 g
module_exit(led_platform_exit);: M" `- m( [  P& ]7 L* }) }

) Y! _9 n' }4 P* H# n5 U- _MODULE_DESCRIPTION("Led platform driver");& l$ r' Y) y) w) b4 Q; e- v
MODULE_AUTHOR("Tronlong");3 a0 ^+ z9 n8 n( O) i1 J* o$ `8 j
MODULE_LICENSE("GPL");
0 g5 W4 F- q) I+ l0 ]. v; I, f
" ]- [2 f9 P8 n4 A- z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 15:48 , Processed in 0.040379 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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