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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ A( u' ?1 j. D6 K
#include <linux/init.h>& C- ?) K5 n; H1 j8 `. `
#include <linux/module.h>1 j6 A& P, p" H2 ]
#include <linux/kernel.h>! R. W2 y2 f( V7 O) ^; _- _
#include <linux/types.h># Z1 k% b/ ]& c* L; \
#include <linux/gpio.h>+ @1 Y! w# [: r, |5 Z
#include <linux/leds.h>
' ?* P. P2 `" H#include <linux/platform_device.h>
, G/ H2 w; o. g5 m* ^0 X
) X$ o, s* p! H) _0 t9 T#include <asm/mach-types.h>: ^5 n$ t( n- S+ f3 E
#include <asm/mach/arch.h>
8 X7 S( A8 [0 i$ s, X' b#include <mach/da8xx.h>
, R% u4 L9 E7 M#include <mach/mux.h>) t' y. y" M4 o4 ~$ w! Y

2 J2 [" e/ O" O" d3 m1 r9 U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 W8 `/ P' i$ C7 H) q6 z* O
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 Z, \8 f3 o  M: I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' X, Z) g4 L7 ^3 j+ U( D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: X* S. c7 p' |. a; |
5 J4 [7 {# ~- A' }. w: O5 |/* assign the tl som board LED-GPIOs*/
+ {, V2 s' S) Hstatic const short da850_evm_tl_user_led_pins[] = {' }: x) L& Q  B  y
        /* These pins are definition at <mach/mux.h> file */& N7 @5 E8 K' C; `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 Z. {9 _# j" n( t# a: D        -1" W* W8 C7 S" ]$ ~: T' ^
};
; J# p. V1 `. S! D- Q- ^4 R6 e/ M( D0 C4 A! M; m6 E- h
static struct gpio_led da850_evm_tl_leds[] = {
6 l: h2 v/ F4 r1 e        {" H1 p: A5 |  e, E" w
                .active_low = 0,
" X, W+ ^% l. w  N" ]                .gpio = DA850_USER_LED0,
; v' e( }; w* ]8 }  h9 W                .name = "user_led0",( C- T4 U- n/ e$ n9 }" _- T
                .default_trigger = "default-on",
/ y. F- ^, `* |; c/ j        },
+ g" P; p2 y4 _5 X' F  M  a7 N        {9 P' [' Y" h" t) B
                .active_low = 0,! j0 k/ [2 c7 R6 u2 ^- I+ h
                .gpio = DA850_USER_LED1,
, M; ]! i3 n/ o& M& |" J                .name = "user_led1",
4 o. [6 [+ V, Q! E  w3 r" I                .default_trigger = "default-on",: I0 _' C- {& r3 H1 t3 E0 _
        },
9 d( a; B0 {4 C( h, R9 E7 ]        {2 u9 w4 p& ]& M( Y5 v: g
                .active_low = 0,
% T, p" a7 H- T$ S; d6 H3 Q                .gpio = DA850_USER_LED2,7 K0 e- Y. ~& d- u) M
                .name = "user_led2",
' @2 t' K' P3 A  s& P. {                .default_trigger = "default-on",
* ?' {, R* M& F8 y        },# w3 h1 Q$ J$ X2 H- d
        {
4 y' J1 u; t9 O9 g) Q( {                .active_low = 0,
  V- _+ ?, F$ q& p4 k                .gpio = DA850_USER_LED3,7 m1 R3 d- E6 X* o0 I# R" t
                .name = "user_led3",
8 p7 K( f. ~2 p: a8 y9 A7 k& K                .default_trigger = "default-on",! v  X) \" E/ d, @7 Y
        },
9 C5 M( I: m; y};; G1 H" o5 p7 P, E! p5 d7 {$ e6 M5 R
& K$ W  e! N$ ~! X& P+ O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- x0 y* L2 ~# z( _- c2 W) l
        .leds = da850_evm_tl_leds,8 @$ ^: O" S! b/ y$ k- X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! F; S; S' ]# N: l0 A};+ w$ r7 E- e! y
4 h' M' ~2 e6 f: S) Z
static void led_dev_release(struct device *dev)6 z1 U/ O( Q% A8 e6 n: G
{+ E" r5 ?! B0 p' M. g2 @
};
+ h0 s) _# t( @& o3 n: I
( D  g+ Q7 ^: P3 ^static struct platform_device da850_evm_tl_leds_device = {- U! L/ ?; {% K' D4 K' g
        .name                = "leds-gpio",
4 s" t  D% T: U0 j        .id                = 1,
& k$ @- B& x- ]9 g7 Q$ p" c        .dev = {/ w* w) j* [+ h/ z
                .platform_data = &da850_evm_tl_leds_pdata,
! g  U8 ~' r' Q. y+ W! H% F! L                .release = led_dev_release,
% a# z0 s( Z3 s1 ]) l3 L5 I" t# q2 N        }7 P! P! b5 C; r# z; y$ F4 T
};6 w1 [- ?3 f) Q- C
7 W; Z8 x$ a" E- C+ z# B5 h1 t
static int __init led_platform_init(void)
2 ~) Z/ a) j' [- j7 W5 X' u0 p9 c{5 J" b0 X1 N# T
        int ret;. X! p* ]' k3 _
#if 0
6 ?0 _6 m5 B. |3 D5 q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; J* S' @% v2 c7 F        if (ret)% a7 d/ p4 Y( C1 R2 \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% H1 H4 d/ @5 C
                                "%d\n", ret);
, s' S; S; e" z5 W, G#endif
2 B+ H& s& @" a8 P4 f; J+ ?        ret = platform_device_register(&da850_evm_tl_leds_device);
1 h8 ^8 \' \% p1 Y        if (ret)
6 z4 c* l+ |! p5 z                pr_warning("Could not register som GPIO expander LEDS");* G( O& Z2 e+ v& `# L* B. l+ k
        else8 [5 t# o# t, l5 L# a# p9 B6 D
                printk(KERN_INFO "LED register sucessful!\n");
; i! p3 _- E+ Z& D1 E! }4 u, r. @1 p  Z# @$ E+ D6 Z, Z
        return ret;0 a3 r7 H- V- ]; u, m# n' G8 j
}7 `9 [& m, c5 F/ n2 `2 }4 B3 v

/ U- a5 G4 {! l* n9 x. Qstatic void __exit led_platform_exit(void)+ t# H0 \* I/ N% c( Y& O( `
{6 w0 T6 _+ R! M& Y5 U
        platform_device_unregister(&da850_evm_tl_leds_device);8 |9 S4 u0 y, t2 H5 i

! M) [- c) a. i; X$ m: n! w        printk(KERN_INFO "LED unregister!\n");& G" Z- j4 I9 f9 J
}
6 `  F( p1 D( G5 ]& o3 I' S$ `: O7 ~) L% A
module_init(led_platform_init);) T: L" \$ C. \9 B4 o# b1 ]7 N
module_exit(led_platform_exit);
" Q6 n# P9 `; y2 K$ Z4 l
% T/ l1 J  U+ m/ F6 g* Q( H$ e3 W* NMODULE_DESCRIPTION("Led platform driver");0 t4 ^! }% L: s# J! L
MODULE_AUTHOR("Tronlong");
5 |+ b* I7 b9 |: NMODULE_LICENSE("GPL");) A+ E# }# `. K  H  W

/ x/ y; B7 h! F% e; W; A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-10 11:07 , Processed in 0.040217 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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