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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( O# t' |, O6 M, L
#include <linux/init.h>
1 k1 _# b+ V$ C! ~#include <linux/module.h>' Q: T/ ]3 [$ K% ^- V2 W
#include <linux/kernel.h>' Q' h, F# o# u9 f" z2 l/ R# e
#include <linux/types.h>
9 d1 G3 s0 w! A; `8 m#include <linux/gpio.h>
  b. _" r3 b4 R" h% u#include <linux/leds.h>
% D1 m" ~5 F4 P#include <linux/platform_device.h>
% X) E; c0 l3 U
  d- P0 i* P4 H7 Y% u6 Y6 H3 S/ q; c$ D#include <asm/mach-types.h>( V# X# U/ g) e, E
#include <asm/mach/arch.h>
  y2 H0 L/ |! Q#include <mach/da8xx.h>
* c9 i* V% K" y% V. ^' Z" V#include <mach/mux.h>
7 B( p7 W8 g8 D7 N# @4 Y( N2 g5 _6 ]; Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 q+ z, G" l, C. d' N#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! ~' i; W. u8 l) \# O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 k5 }4 R; U& \% q& ?3 g! `+ p0 Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 z5 L- r9 F3 Q

; O3 |" ^6 a4 G$ E6 L6 Y/* assign the tl som board LED-GPIOs*/3 s  O1 Q% _- D7 w* Z2 a; N
static const short da850_evm_tl_user_led_pins[] = {% ?$ t. h! q) O! Z9 @3 n% p" b
        /* These pins are definition at <mach/mux.h> file */
6 F  x/ L/ W" C/ w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% ~" J' i8 t- C- I$ m: \/ b        -11 C) d: f- |; g6 Y
};
8 T  ]7 Z7 Y7 _7 ]# T' F% z! u: n5 `9 v0 s( R; ~
static struct gpio_led da850_evm_tl_leds[] = {* N7 |+ |  [: F& p+ [  r* q
        {/ i5 i+ q( X) O% s" X9 r! a0 S' X
                .active_low = 0,
" R  g% ?% |- j' Y                .gpio = DA850_USER_LED0,1 ]! d* \1 y- c+ q6 E5 k: q
                .name = "user_led0",, S+ }+ Y5 i, {" @
                .default_trigger = "default-on",% P* s2 T! ^- }$ i! u+ ?  C3 K
        },: F3 M9 X/ Q1 H% J
        {
! b* F: J0 x$ B) ^  H6 Z                .active_low = 0,
9 F3 j' i# G1 _7 j* D                .gpio = DA850_USER_LED1,
# k, ]* z. k- K; C                .name = "user_led1",. U) Y# \4 y8 @7 I$ i: v' A4 P9 b4 W
                .default_trigger = "default-on",
" u$ o7 J( U, O/ [2 p( K        },
7 R5 Y- o+ O+ F- z6 ?: n        {" b: l* Q7 y6 W
                .active_low = 0,
5 u# @7 H3 O7 P+ j$ c                .gpio = DA850_USER_LED2,' A7 j; F5 v; Y3 J7 w* M
                .name = "user_led2",
6 s" R$ w( S4 s% e$ y4 O                .default_trigger = "default-on",
: Y3 `# Q  ~: J# i        },, b" Z/ A) w& n5 S+ l, c& H" x
        {6 |+ |; H* ^6 ^8 Q9 ~  L% L, E
                .active_low = 0,
* U9 z1 C( X6 f                .gpio = DA850_USER_LED3,
0 b& L  }  a5 a) e. `0 B# l                .name = "user_led3",
/ n) T7 r0 L. \3 I                .default_trigger = "default-on",
1 v! V# K8 I: N1 ?! v* V4 [        },: K8 V& e0 _" o& ^$ V: B8 b
};. p. m$ C% P+ I
4 B% U7 E. y' w7 v1 D( c" \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ j* G2 \  @  `4 J0 Q2 s6 l5 c1 C        .leds = da850_evm_tl_leds,7 I& p8 ^% q/ @
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ G$ i+ b: O7 G) {
};, p$ C& J! E. j+ y8 d. F

1 T1 w. `+ v7 b& c5 d# e& e  m$ Qstatic void led_dev_release(struct device *dev)& R9 E! N( ]% `
{
  C5 M& l  S6 N2 X+ G& F};$ A: a2 C( f. T7 L* z- W

: D& j' O* X9 v5 B9 q" Gstatic struct platform_device da850_evm_tl_leds_device = {& F% A+ ~2 i4 K9 u1 e6 s: I# n+ i
        .name                = "leds-gpio",
. M8 k3 r) x; p' o) j( i        .id                = 1,6 t) m/ m1 k$ [& V
        .dev = {
8 p( k! g1 L% w) |! q                .platform_data = &da850_evm_tl_leds_pdata,; a% O+ z* x( e. |- O
                .release = led_dev_release,2 ^8 n: l6 L# @. `
        }
" ~& H: q1 @* L};
- d1 s7 m' ~$ N2 \# O9 K; Q4 j
9 Z% f$ s" r( I5 X6 j- _7 Istatic int __init led_platform_init(void)
& N- R' P# b8 }/ O* f6 |6 z" u{5 @7 g" n$ g! l5 f' ^! o4 Q. X" ^. y
        int ret;: i$ f& I+ _) W1 n1 K; e, u$ F
#if 0: |% x) N6 o, b# l0 I( R: B' S4 l
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 J; ^( V% d9 p. k  e
        if (ret)- @* M6 ]2 J! a* A# L& x
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ P2 w) B+ h0 @/ P% S! t
                                "%d\n", ret);
6 W0 @& L/ r* d#endif
0 E$ u5 a) ~: `! f1 A" T1 s  ~* e        ret = platform_device_register(&da850_evm_tl_leds_device);
' Y' `8 U# t# @7 r2 K3 c2 `        if (ret)7 g& ~1 _  s& }7 C$ S, j8 |
                pr_warning("Could not register som GPIO expander LEDS");
4 K4 ?/ |3 ]$ }" J8 ~        else8 w3 Q' K* N& _- b$ v% q
                printk(KERN_INFO "LED register sucessful!\n");) E9 ^' I8 }8 r% R2 X+ x

; H3 }6 g. g+ N+ a! Z) y        return ret;
+ \. }) Q, x  j8 V, N6 }' E8 z}/ x  _! f: X- O6 Y8 o; B

) \( l. Y8 I/ A: ]static void __exit led_platform_exit(void)
; m! G2 f8 b& |! |( W0 M2 z{
6 [" X6 _) q) k0 z* s6 g        platform_device_unregister(&da850_evm_tl_leds_device);
* [% O5 _- i# k0 O1 w4 D; [' p5 H* O: {2 V; A
        printk(KERN_INFO "LED unregister!\n");2 I9 y1 X7 q, @1 h& g5 U/ |! ^5 N
}
0 x& N% ]: T- W
4 Z/ n; Q) v4 X" smodule_init(led_platform_init);! E4 m. R- H" s4 i) F2 E
module_exit(led_platform_exit);
7 C/ x+ K9 q! y: x8 i
( I4 W* b+ e! t4 G6 K3 B" ]# gMODULE_DESCRIPTION("Led platform driver");: M% o: q1 B0 I' F) D
MODULE_AUTHOR("Tronlong");
! J: }# w- o" _$ y) s, d2 IMODULE_LICENSE("GPL");+ P* E2 u' A* M" f( `+ G! F
7 |. b4 i  B! B5 c) c' ^. v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-7 08:40 , Processed in 0.056002 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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