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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 o1 ^4 j9 \# ~% g3 A5 j#include <linux/init.h>9 u6 ^% N. Z3 ~8 K* I4 E$ o
#include <linux/module.h>/ f( z/ u/ ~. {+ v
#include <linux/kernel.h>% L; q7 n* W: L, p' t: w2 F
#include <linux/types.h>" e, t+ A4 ?4 E, E
#include <linux/gpio.h>+ B( d: _: |! d3 v
#include <linux/leds.h>
' a5 M, H7 S: R) |/ E  w& }#include <linux/platform_device.h>' T. ~9 g& @, k- i  |
4 w7 r5 @- e- \; g4 v% v1 L
#include <asm/mach-types.h>
- r, m- }& @& l7 z# c( q#include <asm/mach/arch.h>1 X+ f' F/ J& V6 C% `" c: i
#include <mach/da8xx.h>
8 T" X3 d# N  o8 l#include <mach/mux.h>
* \3 i, n# `( \8 ~8 j
5 I0 w1 b4 u8 @+ h' [. U, q6 s; a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# s5 G7 q. _$ u( O. y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 a+ }% J. ~! |; l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 G6 V3 R) K; V- w) F) D! k) Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 k; b0 r3 i  G( l1 `7 _0 @2 y0 z4 {, k3 b
/* assign the tl som board LED-GPIOs*/( c* H4 W0 D: h/ N, \( G* R
static const short da850_evm_tl_user_led_pins[] = {, y: f) \  @( H% a( k; [+ A
        /* These pins are definition at <mach/mux.h> file */, k0 b* i2 ~4 r+ ?4 |6 J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' y- ?+ J7 _* @
        -1
1 G: F5 _! E7 w};3 Z6 k) d! ?7 x; t% C
+ A+ V. v5 d2 z2 @, t# i
static struct gpio_led da850_evm_tl_leds[] = {4 i9 V1 R; u3 |/ e" P4 K( T  d
        {
+ x2 D3 a9 g# X" Q5 h& Q                .active_low = 0,, j* X6 I* N, Z: D. z" D
                .gpio = DA850_USER_LED0,
; L- V0 r, W9 Y                .name = "user_led0",0 P& U$ x: Q3 Z* y! x" _1 V8 N  O3 ]
                .default_trigger = "default-on",
4 @' o& W6 D1 J6 m8 [        },
3 b8 x" d9 B% n* [4 [        {
! }2 K) ^$ d5 t+ ?5 p6 n                .active_low = 0,
% K, u2 |4 p/ G                .gpio = DA850_USER_LED1,$ ~6 W; o* O- b, u) L
                .name = "user_led1",9 N+ g0 L- I/ h3 ]# [
                .default_trigger = "default-on",$ G# ^- h, t# n) ^
        },0 H# j* V/ h$ A6 m; n
        {& f; S4 y1 ~, W5 e% B# k
                .active_low = 0,$ @0 q1 K3 u6 f. y1 Z1 j. ?
                .gpio = DA850_USER_LED2,1 c) o( l) G3 N6 S
                .name = "user_led2",
& \# k/ m- P7 M0 d4 I: M                .default_trigger = "default-on",
4 X0 k7 ~0 U6 h- r& X        },* K+ P& W# e. A
        {1 |7 O. G& m! e% B# p5 r) \. m
                .active_low = 0,
- ~: W7 X% f* h; ~* }2 G: F                .gpio = DA850_USER_LED3,3 C( [% n0 o/ _) }# ~
                .name = "user_led3",5 _2 B& j- ^' T. w3 j0 ^3 s: J* v
                .default_trigger = "default-on",* d2 T/ E3 W; o- u! _5 M# O
        },
* V3 e: I$ U1 q, T};
4 I3 H( i4 i+ B/ u+ U: P
) d! |! S' I4 K% ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 U# Y  |. d& x% }+ n. M        .leds = da850_evm_tl_leds,$ k! P0 p3 l  g) G& b- @. `) Y. k
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," Q9 L* h, v: P! A. w3 S; |) `
};7 _- {6 n5 |3 v7 z+ S' f
0 G3 l0 D0 Y6 J  p
static void led_dev_release(struct device *dev)" T0 N8 X: O5 x! x* b( b2 W# m, B
{
% O0 Q" J" D$ B9 K8 v7 y* \1 g};8 ^! q3 s$ w% h

6 {  x$ R, N' g+ c, R8 Nstatic struct platform_device da850_evm_tl_leds_device = {
3 L3 z: z0 r" A0 Y' z) u        .name                = "leds-gpio",% S, \1 |# t7 C) ~* n
        .id                = 1,
7 k  U% @  K2 B: g" S        .dev = {
0 S. b" x) I+ }0 ~, k                .platform_data = &da850_evm_tl_leds_pdata,
! m. ~- x; d( p; Q& w( i                .release = led_dev_release,
  S- N/ j/ _- r! m        }
( r" d# z& f  h};5 u3 |8 D8 B0 ~# B8 M

7 b% k* I/ \% {4 q* h' u$ Estatic int __init led_platform_init(void), \! @8 W8 A. S5 N, k
{
/ h+ Q. M9 h2 }8 M$ w' K# ]7 f        int ret;
1 f3 S, W/ h8 a, _# ?#if 0$ }% Z- ?4 a, `1 _. s8 v( P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 o; Y/ p5 j( v9 Z) a
        if (ret)
7 ?6 X! j# p! I% k0 G; c! D) A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ H$ w8 n' e3 d. c                                "%d\n", ret);8 B# B5 _: d' u% a
#endif
) J& ?, E' a% o        ret = platform_device_register(&da850_evm_tl_leds_device);
" u$ S' o# k6 ]: w2 n        if (ret)7 T- z6 \, {8 @/ ?5 e
                pr_warning("Could not register som GPIO expander LEDS");
& l& l; ~( K  w9 }% \$ e        else
% H- H; W, o' `" }  I+ E* W6 ]2 y, k* U0 \                printk(KERN_INFO "LED register sucessful!\n");3 @! i& {6 w. e8 s. v* l
) F; g* H/ z2 F
        return ret;
. ^5 @( r! ?2 _' Q5 a5 Q( U}& _; g9 W+ j  ~+ J8 z- `

! z8 G2 Q8 [& c2 ^static void __exit led_platform_exit(void)/ g, A7 q* C% }/ K2 z8 j: k6 k
{
! f4 V0 d/ u% ]* M7 z4 }        platform_device_unregister(&da850_evm_tl_leds_device);
5 a4 F  n5 t$ ^6 [4 Q; M$ J4 ]  |' O# B9 ?- c
        printk(KERN_INFO "LED unregister!\n");9 {- {" s- p; m; K  I* h
}; n1 D" }: ^) S3 t8 u0 ~6 m
6 K8 v; f* \$ M; B: W
module_init(led_platform_init);
$ C4 o) Y5 ^& c8 p: Gmodule_exit(led_platform_exit);/ F( u: R/ R5 b5 ^8 B/ ~. Z
5 p# G8 i; `5 P  W- Q* t/ N
MODULE_DESCRIPTION("Led platform driver");
$ R! S3 V1 M' o, [( GMODULE_AUTHOR("Tronlong");
* r0 F+ H, J% J8 P3 K4 XMODULE_LICENSE("GPL");8 w* ^5 o# y+ z) N4 A" I
/ \6 Y" e0 f* h. T. ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 20:59 , Processed in 0.039416 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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