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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 j" N) `( ^0 f2 Q1 D#include <linux/init.h>
3 ~- j3 K2 k9 v. Y% s* {#include <linux/module.h>
3 p, E4 a3 O: \  [/ P5 }$ a#include <linux/kernel.h>
' J: Z$ k. K1 S( S7 l+ C# v% u4 ~#include <linux/types.h>! @; J9 K: S2 e
#include <linux/gpio.h>: Y* S( |* x9 w# W; U
#include <linux/leds.h>/ G: f3 n: D* p
#include <linux/platform_device.h>! L, P0 j+ ]1 M
5 f7 J0 o6 h+ r4 u9 v! b. H! T2 l
#include <asm/mach-types.h>) J  g/ t, `9 o. _% w# s# _
#include <asm/mach/arch.h>
( y) l( v1 w: ~; Q/ N) D- @6 s#include <mach/da8xx.h>
! Q8 ^, W  B  W  }. a& k) ~1 b#include <mach/mux.h>: z0 ]; u# o! W, @

8 C! n; c3 W8 ]; M( e( \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 y7 l" _& e, ]* J6 S3 q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" \' ^4 i: K# s! `5 g. o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 L& G6 n( ]$ i5 F8 P4 \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ F( B9 o) F0 e4 S* k3 J5 e( `1 H" c0 n+ n$ I
/* assign the tl som board LED-GPIOs*/  B/ T. P( D& g" C8 y! T& |1 q" R
static const short da850_evm_tl_user_led_pins[] = {- v2 y* v3 D: \5 b
        /* These pins are definition at <mach/mux.h> file */
7 @5 j9 j$ m( N, I; o, I& t2 l! m        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 t8 j) v2 `; h        -1
# F4 [  W) I/ m& g& `% n};2 }% K- x6 q( m6 {" g

# Z! C5 q" G* j5 e- t1 Zstatic struct gpio_led da850_evm_tl_leds[] = {; m7 j% {2 A: m3 Y! L3 _
        {2 x" U5 r/ O  v2 ?/ E0 Y
                .active_low = 0,& H: b- P9 s, h" s+ ]/ a/ z
                .gpio = DA850_USER_LED0,
: q- V1 K5 u8 x# [                .name = "user_led0",% a- W4 N% s9 v3 ]+ U0 G
                .default_trigger = "default-on",
% M& u% ^. I& l% x: e        },+ F% r  Q/ Q! u, ~2 A2 o
        {
- R6 B2 h1 F* f" }$ e+ V                .active_low = 0," t+ c! [) Q5 ]9 N+ f3 a
                .gpio = DA850_USER_LED1,8 f3 g5 h$ w' y+ ~2 |
                .name = "user_led1",, u. P# b1 Z+ C0 b; L* R; D
                .default_trigger = "default-on",
) p. w! e4 R5 G8 P1 ?; U        },
2 c2 m- y0 e1 b4 v: ?) i        {
* n% H& P/ P, J7 J                .active_low = 0,
7 J8 w" E2 z8 r6 `% _, ~, d& A                .gpio = DA850_USER_LED2,* d. }) n( A% H7 \8 u/ L
                .name = "user_led2",6 F, T4 f4 M* Y* V8 U
                .default_trigger = "default-on",
7 T) \! K7 ]# G: u        },
: `- Q& q# J& ~3 T        {' k% u6 A2 Z5 ]4 {2 M2 U9 W) H
                .active_low = 0,
/ L1 b7 H) t2 d) j                .gpio = DA850_USER_LED3,
* x7 G7 q0 h) r& A7 T" X                .name = "user_led3",7 g5 L( g: x# I" s# K6 P' w2 O
                .default_trigger = "default-on",# |+ z; x# a/ h% j$ k/ |9 B1 ?
        },6 g& G/ m& X) |$ U, i. g9 Z7 ^
};
' t3 s9 G: |" w0 H7 w$ S7 ^! t" B- s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ a5 [9 G  C3 i6 b        .leds = da850_evm_tl_leds,$ K4 O2 i+ G5 s% A9 g* u, m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ L4 B) W4 a7 L
};1 ~$ ?  [$ h6 D' N* _' Q! Y" s+ ]' t

& b7 M. L2 a9 n: W) Jstatic void led_dev_release(struct device *dev)
- V$ r1 ^" `5 }" K  u8 R$ u{
6 k, a  R6 d8 Y* Y( |};
( i% H% ~  i, T0 C5 W6 C: a$ m$ f7 o7 `4 x, T- X, m* G4 `! D& _; d
static struct platform_device da850_evm_tl_leds_device = {
0 m5 O/ V3 P$ G( P+ d        .name                = "leds-gpio",
; l& x' e- c2 ]        .id                = 1,
# R: o. e. G% z: c$ b9 B: O        .dev = {7 o! x( Y( ~- P
                .platform_data = &da850_evm_tl_leds_pdata,
7 @; @' e. |$ c2 H% F, Z- R                .release = led_dev_release,
: ~+ |. O6 r9 d# k& h        }- B( |4 J# E$ E, A. f9 c6 M
};
: j% G% K: N9 |. z# L* ~
1 }# k; ?4 i; i6 e1 t' jstatic int __init led_platform_init(void)! z. _# J7 v/ B& n% r- g4 R; z
{6 f# c5 U, y) D. P% u% D
        int ret;, c3 j- C* t$ d; {2 b9 S* o
#if 0( l" y& Q- G6 k# x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, x" _0 i; J1 |$ H! h4 T
        if (ret)
) l+ W  k8 v" U: a# N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# d2 \) U, j" i8 ]6 H; x' P3 J                                "%d\n", ret);
6 N: y4 L% t9 @2 {: w#endif
2 M9 I! L+ E# \  j, @' J  v        ret = platform_device_register(&da850_evm_tl_leds_device);
9 r* L8 X: a3 A7 x; m5 L! g$ O        if (ret)9 e3 E6 I5 ]% y0 S
                pr_warning("Could not register som GPIO expander LEDS");
, k0 w& O* H4 t8 J3 ?/ |        else
  L- s4 f8 V4 Z- q# e) s5 A                printk(KERN_INFO "LED register sucessful!\n");
- y  r8 Y" q8 {  J; k
. G6 |) _' J+ [) C/ {: G2 c        return ret;- [* y4 A- [* {- z5 v8 U( n% ^
}. a3 i: C! o$ v! C
8 k, U0 s/ |1 d9 P
static void __exit led_platform_exit(void)) O3 Y3 Z9 x' A7 R1 w7 C+ O
{
& c! F" a4 P4 E5 K+ @        platform_device_unregister(&da850_evm_tl_leds_device);5 G9 A8 h# B5 Z
$ H7 t2 j$ F3 y& A0 N+ E
        printk(KERN_INFO "LED unregister!\n");
$ p$ g0 {$ J1 p5 Q5 y- F0 w9 ~" _}
* Q; G/ q6 d4 z- q" l  s+ u
3 l  n, u2 x- U9 |6 tmodule_init(led_platform_init);
  e2 a. t% `* ~5 T/ Xmodule_exit(led_platform_exit);# [& _0 K' d. E; ~' [5 |
5 `+ ]$ O; l2 L$ C! }( h% a7 x
MODULE_DESCRIPTION("Led platform driver");, c' ~1 }  [" Y! P, F% L, D
MODULE_AUTHOR("Tronlong");
. F2 h0 |3 A; UMODULE_LICENSE("GPL");& K" f7 G" n5 |3 A7 D, J' S1 C
0 W7 G  ?+ b& \6 b% m7 i3 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-15 19:42 , Processed in 0.043778 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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