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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 c4 ^" S" i1 H8 }" Y2 \5 i
#include <linux/init.h>! I3 o) L( o) z; y( U! y- P3 G2 Q
#include <linux/module.h>
; M2 g: u7 J( ^7 q/ ~#include <linux/kernel.h>) ^  @7 R0 k2 L' X. Y2 T
#include <linux/types.h>
! ?* o; @& C8 P#include <linux/gpio.h>6 T8 q: H$ |) N$ ]
#include <linux/leds.h>
6 b7 h$ h% \8 d7 r#include <linux/platform_device.h>
( j; \# a! a7 G  ^+ N- D, L# Y
3 T% _/ y* m) q$ t8 [#include <asm/mach-types.h>
6 i/ e. |& w) l* h5 m#include <asm/mach/arch.h>8 M  y8 t8 B0 s  u( }9 L
#include <mach/da8xx.h>
; c! k- _0 o7 H; w. f0 X#include <mach/mux.h>. ~( Q. x8 A4 Y" c2 y7 B

  E7 z, A0 w9 Q6 E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 ]4 |( c$ ~& v2 Y8 w% c+ Q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ u2 U6 A/ t2 K. U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 ?& g+ k) I, w+ L* [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* K# \- X8 r& t: N; e9 s! K( |* R) |
/* assign the tl som board LED-GPIOs*/% F  K- T" y9 E) [( T2 o. `+ H0 u; j
static const short da850_evm_tl_user_led_pins[] = {1 |) V  m  [3 Z9 S' D% G
        /* These pins are definition at <mach/mux.h> file */$ C# T9 c4 K# O. L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; o( G  ?, I! y4 t2 m
        -1
6 }& w. b1 Y" F- n};( Y4 m( j! h3 E% g* Z

7 A8 k/ l; f* estatic struct gpio_led da850_evm_tl_leds[] = {
) G* G, U/ ]1 L        {. \, m1 E7 V3 A% H! H: ^
                .active_low = 0,
% y( U8 w: g* m# y                .gpio = DA850_USER_LED0,# S$ s" A$ p& c8 Q" O( E
                .name = "user_led0",) P) @8 p! o. {1 A9 H9 U( `
                .default_trigger = "default-on",4 m7 Y: B3 |( m, n/ t; B& C3 A: \
        },
3 P4 y- S6 x) l        {
' O9 P) E; J$ j$ P5 ~* W                .active_low = 0,
9 A3 l* o: l" e+ {0 \  [8 i; l+ f" Z                .gpio = DA850_USER_LED1,9 r) L" E; y5 r
                .name = "user_led1",+ {7 @) u: [6 `0 `
                .default_trigger = "default-on",
' r& e) {( F# J) E9 N2 y        },
4 L% {+ e0 Q( e+ h1 E, [        {. i$ c, x- R  z8 i& `
                .active_low = 0,- y3 E  x8 `. n& O; N" Y
                .gpio = DA850_USER_LED2,
' F, t, l/ C( T& g  A* @! `                .name = "user_led2",
9 j( u' b- @' F; B4 S                .default_trigger = "default-on",4 F' w/ q9 @. }+ e& A& e
        },
# I- k6 T1 t; T2 q( j% M" M, t        {
+ P* Q  ?+ b/ g8 z+ e8 Y2 Y& T- Z5 a# E                .active_low = 0,
0 m, J) K( [: T7 w) T3 \                .gpio = DA850_USER_LED3,. J4 x- y( }5 r1 a+ Q7 [7 b
                .name = "user_led3",1 C$ T2 f6 J  N' ~- E  ?. `- {2 C
                .default_trigger = "default-on",
! }+ @+ V$ N5 a1 z6 z        },8 Z  m# s" e. ]3 J' Q
};6 ~8 W, \; n; k  L  v. i! R9 a* i" W5 K
+ \$ b8 V# a0 C4 [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  _6 k  |& C3 b. @. |0 Q        .leds = da850_evm_tl_leds,7 |: w: U6 x" v: Y2 P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," t( `% Y' i, E3 g% b
};. T- k+ H: H6 b6 b$ `# [- {
8 c" n" W2 {+ c. u& g
static void led_dev_release(struct device *dev)
, ]7 ?" I8 E" d! U6 A9 p& C" K{
2 Z9 t# z; ~' k( r! K$ j};( J& n% B! `& [

' [; t7 J) o7 mstatic struct platform_device da850_evm_tl_leds_device = {' P; f5 ]) A2 r
        .name                = "leds-gpio",& W6 V6 X1 i3 Y3 j; C, H! y
        .id                = 1,
# Q6 R& R( |9 u7 d        .dev = {& r" {7 I( E0 }" Y2 {: T7 o
                .platform_data = &da850_evm_tl_leds_pdata,
3 ~, _5 X. k  E- k4 X$ E                .release = led_dev_release,
" P1 s0 Z# y" U5 r        }
7 q  c% |! p, ^* q: J+ x};
8 H! k4 V; W* t6 o4 D+ n3 k6 A
4 G. Q1 T' |8 [" o; `4 C' Qstatic int __init led_platform_init(void)
2 n) }2 @8 M( `9 t$ d{
' K/ v4 G# b% Q* N        int ret;+ k) v% R9 x1 Y  `
#if 0
' _2 j# ^% b3 z# N4 \        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) i1 C% D1 W+ m
        if (ret)
- [# P, C5 o5 }; b: u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) d0 J) a/ J7 c# z1 y                                "%d\n", ret);2 M& ?* x3 M$ n# ]# ^2 G+ \! a
#endif
2 z: s9 U( U. e) ]        ret = platform_device_register(&da850_evm_tl_leds_device);
2 l! y! }* O) i7 B1 p# o        if (ret)8 K9 i" E0 N5 u
                pr_warning("Could not register som GPIO expander LEDS");
- a5 a- Z. l4 ~- |0 ^        else
+ c5 S/ S2 W/ J$ U# b                printk(KERN_INFO "LED register sucessful!\n");( K$ ^1 {9 m! G3 t4 _( p* ?8 @  O

+ n3 o' O6 E5 A% g$ ^) c! K        return ret;
  |8 J* r) E2 ^' k7 `8 X}2 T0 f/ o  ~# m, }  N1 H, R  e* K/ V
, P* w$ D( @, d
static void __exit led_platform_exit(void)
- e+ P# S  p0 {; ]{
. Q/ ~5 S% ?( g1 A" @        platform_device_unregister(&da850_evm_tl_leds_device);
2 w* [: n/ w; K( R2 _3 `3 a
- P# {# i/ L5 a6 {; x        printk(KERN_INFO "LED unregister!\n");) t% ]5 `: ?. Q  \" C
}* t  j( P) ~; R% @' D+ h
' }& b$ n) ]! z4 }( b
module_init(led_platform_init);
5 H' \! e5 P  f3 u7 u7 Nmodule_exit(led_platform_exit);
7 q6 B$ n& I  [* ~, @/ C- K1 O( R( G+ v- h' {( s% a% B/ W; B
MODULE_DESCRIPTION("Led platform driver");, v, D! z; y( s* d8 V' p
MODULE_AUTHOR("Tronlong");% n3 j' l+ \( ^  E
MODULE_LICENSE("GPL");& Y6 f+ L% N/ y6 {7 }! ]
! A) A) b6 ^! N# R/ A# R+ V+ ~/ e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 02:45 , Processed in 0.038688 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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